我有一个使用 jQuery Mobile 构建的phonegap 应用程序。
我已将事件监听器绑定(bind)到 pause
和 resume
,如下所示:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
document.addEventListener("pause", onPause, false);
document.addEventListener("resume", onResume, false);
}
现在,我已将 alerts
放入 onPause
和 onResume
函数中。这些警报确实会触发,但是我尝试从这些警报调用的任何功能都不起作用。我的一个函数 initialize
(基本上是重新启动应用程序)在从代码中的任何位置调用时都可以工作,但是当从 onPause
调用时它不会触发。我尝试过的另一个函数是 clearInterval
,但它不起作用。
最重要的是,在应用实际恢复之前,pause
事件似乎不会触发,就像在重新打开应用之前不会触发警报一样。
我试图在应用程序暂停/发送到后台时强制关闭/注销,但这不起作用。
我有什么明显的错误吗,还是我遗漏了什么?
更新 我的函数未触发的问题是由于变量作用域(愚蠢的错误)造成的,但是,在应用程序恢复后,暂停事件仍然会触发。
最佳答案
我想我也遇到了与你完全相同的问题。我已将 Phonegap config.xml 变量 KeepRunning 设置为 false。我设置为 true,现在它在应该的时候得到了暂停事件。这是我正在讨论的 config.xml 行:
<preference name="KeepRunning" value="true"/>
我认为,如果应用程序未运行,则暂停事件代码将不会运行,直到应用程序再次运行。我猜 KeepRunning 的优先级高于监听暂停事件。得到一个正确的解释来解释为什么这恰好处于较低的水平将是很有趣的。
关于jquery - Phonegap 暂停事件行为不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25676355/