2012-07-07 62 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