2012-07-07 61 views
0

请原谅,如果这是简单的,我忽略。我正在使用PhoneGap/Cordova平台开发我的第一个应用程序,我似乎陷入了第一个障碍。我的deviceReady侦听器似乎没有被触发。Phonegap deviceReady not firing

我的代码看起来像这样:

alert('0'); 

document.addEventListener("deviceready", function(){ 
    alert('1'); 
    db = window.openDatabase("testproject", "1.0", "PhoneGap Test", 200000); 
    alert('2'); 
    if (dbCreated){ 
     alert('3'); 
     db.transaction(getData, transaction_error); 
    } else { 
     alert('4'); 
     db.transaction(populateDB, transaction_error, populateDB_success); 
    } 
}, false); 

初始alert('0')(投入,以确保我实际上连接到文件)被解雇,但没有别的正在发生的事情。

在这里的另一篇文章。其他人有类似的问题,被要求尝试document.addEventListener("deviceready", deviceReadyFunction, true)这解决了他们的问题,但不适合我。

作为一个侧面的问题,你如何去调试JavaScript和检查PhoneGap开发中的客户端数据库?在为网络开发时,我显然拥有萤火虫和许多其他工具,但是PhoneGap开发严重依赖于未由浏览器触发的deviceready,我应该了解哪些工具? (我正在Coda编写我的代码,但是从Xcode编译)。

回答

1

我有共同的代码,它工作得很好,我一直在使用科尔多瓦1.7和Android 2.2测试

var dbCreated = false; 
    document.addEventListener("deviceready", 
      function() { 
       alert('1'); 
       db = window.openDatabase("testproject", "1.0", "PhoneGap Test", 
         200000); 
       alert('2'); 
       if (dbCreated) { 
        alert('3'); 
        db.transaction(getData, transaction_error); 
       } else { 
        alert('4'); 
        db.transaction(populateDB, transaction_error, 
          populateDB_success); 
       } 
      }, false); 

    function getData() { 

    } 

    function transaction_error() { 

    } 

    function populateDB(tx) { 

    } 

    function populateDB_success() { 

    } 

完整的源代码 - https://gist.github.com/3064728

用于调试,用weinre它确实是一个很好的工具调试移动设备上的JavaScript应用程序。

+0

我所用,其使用科尔多瓦的版本错误一些示例代码debug.phonegap.com - 通过

http://people.apache.org/~pmuellr/weinre/docs/latest/

的PhoneGap也使用它。 Durrrrrr – Fraser 2012-07-08 07:20:10