Phonegap应用程序不包括JavaScript文件

时间:2014-09-13 00:14:38

标签: facebook cordova phonegap-plugins

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); 

})

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

1 个答案:

答案 0 :(得分:0)

因为您在匿名事件处理函数中定义了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();
  }
});