deviceready事件未在Cordova 3.2.0中触发

时间:2013-12-18 19:47:28

标签: javascript android cordova

我正在使用Cordova 3.2.0 -0.3.0和NetBeans 7.4 来开发Cordova应用程序。虽然它在移动设备的Chrome浏览器中运行正常,但它似乎无法在我的手机(Android 4.1.2)和模拟器(Android 4.3,API级别18)中正常工作。
问题似乎是deviceready事件永远不会被触发。

这是代码:

app.onReady = function(callback) {
    $(document).ready(function() {
        // are we running in native app or in browser?
        window.isphone = false;
        if (document.URL.indexOf("http://") === -1
                && document.URL.indexOf("https://") === -1) {
            window.isphone = true;
        }

        if (window.isphone) {
            alert("isPhone");
            document.addEventListener("deviceready", callback, false);
        } else {
            callback();
        }
    });
};

app.onReady(function(){ alert("test"); });

“测试”它从未显示过。

2 个答案:

答案 0 :(得分:9)

正如点燃者猜测的那样,我忘记了cordova.js 虽然我必须说,在我的辩护中(:P),包含一个脚本就好了,如果它不在那里(至少在浏览器中进行测试时),它就在你的根上了。

答案 1 :(得分:3)

问题可能是{<1}}事件在DOM准备就绪之前触发,即在执行deviceready回调之前。

您应该尝试独立于$(document).ready()绑定到deviceready。 有关如何执行此操作的示例,请参阅this answer