Phonegap deviceReady没有开火

时间:2012-07-07 04:17:21

标签: javascript iphone debugging cordova

请原谅我,如果这是我想要的简单的事情。我正在使用PhoneGap / Cordova平台首次涉足应用程序开发,我似乎陷入了第一道障碍。我的deviceReady监听器似乎没有被触发。

我的代码如下:

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)来解决问题,但不适合我。

作为一个附带问题,您如何在PhoneGap开发中调试javascript和检查客户端数据库?在为网络开发时,我显然有firebug和许多其他工具,但是PhoneGap开发人员严重依赖于设备已经不是由浏览器触发的工具我应该注意哪些工具? (我在Coda编写代码但是从Xcode编译)。

1 个答案:

答案 0 :(得分:1)

我在一起使用代码并且工作正常,我已经使用Cordova 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应用程序的一个非常好的工具。

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

PhoneGap也通过 - debug.phonegap.com

使用它