Cordova:暂停事件而不启动
Cordova: Pause event not firing
由于某些原因,暂停事件没有在应该触发的时候触发。
如果我按下手机上的主页按钮,就会在这里触发暂停事件,从而暂停音乐。但相反,它一直在播放。
但当我再次打开我的应用程序时,它突然暂停,然后又恢复了。所以当我返回应用程序时,它会触发这两个事件。
为什么我离开应用程序时onPause没有启动?
我有以下代码:
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
document.addEventListener("resume", onResume, false);
document.addEventListener("pause", onPause, false);
}
function onPause() {
PauseMusic();
alert('paused');
}
function onResume() {
ResumeMusic();
alert('resumed');
}
我想我遇到了和你完全一样的问题。我已经将Phonegap config.xml变量KeepRunning设置为false。我设置为true,现在它在应该的时候得到了暂停事件
<preference name="KeepRunning" value="true"/>
我认为,如果应用程序没有运行,那么在应用程序再次运行之前,暂停事件代码不会运行,这是有道理的。我想KeepRunning比监听暂停事件具有更高的优先级。如果能得到一个恰当的解释,解释为什么这只是一个较低的水平,那将是很有趣的。
你在iOS上测试吗?我发现这是iOS上的"正常"行为,正如Phonegap文档所指出的:
在暂停处理程序中,对Cordova API或本机的任何调用通过Objective-C的插件不起作用交互式调用,如alerts或console.log()。它们只是当应用程序恢复时,在下一次运行循环中进行处理。
因此,根据医生的说法,在关闭应用程序时,你永远不会看到alert('paused)
。
然而,我的观察结果是,代码是在应用程序暂停时执行的,只有控制台打印会延迟到下一次应用程序重新启动。
如果您的PauseMusic()
调用没有执行,您可能应该发布更多的代码,看看是否存在问题。
相关文章:
- 从控制器返回后Ajax启动事件激发
- 触摸启动事件未在iframe iOS 6中启动
- preventDefault之后的重新启动事件
- 如何获取在一系列事件中启动事件的元素
- 当窗口打开时,IE9在加载前启动事件
- 我的 JS 代码中的会话启动事件
- 仅当前一个事件完全完成时,才启动事件
- jQuery UI - 如何区分拖动/调整大小启动事件和单击事件
- Javascript “卡住”键(未注册的键启动事件)
- pace.js:“启动”事件未触发
- 在第一次触摸启动事件时禁用所有点击事件是个好主意吗?
- 如何将“拖动启动”事件与 CKEditor 实例分离
- 触摸启动事件上的Javascript触发函数
- 绑定到触摸启动事件,导致自动对焦集中在Mobile Safari中的任何单击上
- 触摸启动事件未在原来隐藏的按钮上工作
- 有没有一种方法可以使触摸启动事件不会触发点击事件
- 检测浏览器窗口是否处于活动状态,并在窗口再次处于活动状态后启动事件[JavaScript]
- 如何检测浏览器是否支持手势启动事件
- 首先启动事件,然后转到url
- 在IE7中无法捕获鼠标启动事件