Phonegap事件监听器无法正常工作

时间:2014-07-09 19:58:54

标签: javascript jquery cordova phonegap-build

Phonegap 3.4.0,jQuery 1.9.1,jQuery Mobile 1.4.2。 我已经发布了有关我的应用程序问题的其他问题,但潜在的问题似乎是我的事件监听器无法正常工作。这可能是我做错了,或者存在冲突。

我在我的javascript文件中有这段代码:

function onPause() {
    initialize();
    navigator.app.exitApp();
}

function onResume() {
    initialize();
}

function onBack(e) {
    alert("running");
    if($.mobile.pageContainer.pagecontainer( 'getActivePage' ).attr( 'id' ) == "login") {
        e.preventDefault();
        alert("halted");
        navigator.app.exitApp();
    }
}

function onDeviceReady(){
    document.addEventListener("pause", onPause, false);
    document.addEventListener("resume", onResume, false);
    document.addEventListener("backbutton", onBack, false);
}

$( "body" ).load(function() {
    document.addEventListener("deviceready", onDeviceReady, false);
});

但是,从来没有调用任何函数onPauseonResumeonBack。这让我相信我的事件听众不正确或出了什么问题。我错过了什么吗?有什么我可以检查可能导致这个问题吗?

1 个答案:

答案 0 :(得分:0)

从jQuery的1.8版开始,不推荐使用

.load()。因此,您的事件监听器可能永远不会被添加。 .ready()将取代.load()

但无论如何你应该考虑使用它。至少在你现在这样做的方式。因为没有必要等待主体加载以添加事件监听器,所以“deviceready”事件可能在主体准备好之前触发。所以你会错过这个活动。我实际上不知道这是否会发生在一个cordova应用程序中,但我不会冒这个风险。