【问题标题】:Phonegap App not including javascript filesPhonegap App 不包括 javascript 文件
【发布时间】:2014-09-13 00:14:38
【问题描述】:

Javascript 文件没有被拉入我的 Phonegap 应用程序。这是最近的一个问题,坦率地说,这让我发疯了。这是我的 index.html 文件的顶部:

    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css">
    <link rel="stylesheet" type="text/css" href="css/index.css" />
    <title>Hello World</title>
    <script type="text/javascript" src="cordova.js"></script>
    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyD90W6MypWGP6s4luD2kQHhZ9IFQrfr04g&sensor=true"></script>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=visualization"></script>
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>
    <script type="text/javascript" src="js/index.js"></script>
    <script type="text/javascript" src="js/facebook.js"></script>
    <script type="text/javascript">
        app.initialize();
    </script>

这是我试图拉入的 facebook.js 文件:

$(document).on('ready' , function(){
console.log('ready')

function onDeviceReady(){

console.log('test')

var plugin = new CC.CordovaFacebook();

plugin.init('***************', 'myapp', 
    ['email'], 
    function(response){console.log(response)}, 
    function(failure){console.log(failure)});

var loginButton = $('#login-with-facebook');

loginButton.on('click' , function(e){
    e.preventDefault();

    plugin.login(function(token) {
        console.log("Access token is: " + token);
    }), function(failure){console.log(failure)});

})


}
if (window.cordova.logger) {window.cordova.logger.__onDeviceReady();};
onDeviceReady();
document.addEventListener("deviceready", onDeviceReady, false); 

})

我无法 console.long facebook.js 文件中的任何内容。让我更加疯狂的是它有时会起作用。我的文件有问题吗?此外,我似乎只是在安装了一个 cordova facebook 插件后才遇到这个问题。有人知道这里发生了什么吗?

【问题讨论】:

    标签: facebook cordova phonegap-plugins


    【解决方案1】:

    因为您在匿名事件处理程序函数中定义了 onDeviceReady 函数,所以在加载 DOM 之前它不可用(并且不应该只能从事件处理程序中访问。这只有在设备是在 DOM 加载之前准备好,只是因为在 onDocumentReady 事件处理程序中手动调用了 onDeviceReady。将您的 facebook.js 替换为以下内容。

    function onDeviceReady(){
    
      console.log('test')
    
      var plugin = new CC.CordovaFacebook();
    
      plugin.init('443530475777959', 'spencerspiegelapp', 
          ['email'], 
          function(response){console.log(response)}, 
          function(failure){console.log(failure)});
    
      var loginButton = $('#login-with-facebook');
    
      loginButton.on('click' , function(e){
          e.preventDefault();
    
          plugin.login(function(token) {
              console.log("Access token is: " + token);
          }), function(failure){console.log(failure)});
    
      })
    }
    
    $(document).on('ready' , function() {
      console.log('ready')
      document.addEventListener("deviceready", onDeviceReady, false); 
    
      if (window.cordova.logger) {
        window.cordova.logger.__onDeviceReady();
      }
    });
    

    【讨论】:

      猜你喜欢
      • 2017-08-24
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2020-12-26
      • 2017-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多