我正在使用iOS 4.3在iPhone4中制作原生应用
在我的身体onLoad中添加
document.addEventListener("pause", Game.prototype.pauseListener.bind(this), false);
document.addEventListener("resume", Game.prototype.resumeListener.bind(this), false);
在同一个文件中我正在编写一个函数
Game.prototype.resumeListener= function()
{
console.log("in resumeListener");
this.PauseGame(false);
}
Game.prototype.pauseListener= function()
{
this.PauseGame(true);
}
此代码在Android中工作得很好,当我手动最小化应用程序时,但当应用程序被语音来电中断时,应用程序不会暂停。
基本上不会触发Pause和Resume事件。
我正在使用Phonegap1.4.1
答案 0 :(得分:1)
我相信您的事件侦听器尚未建立,因为您在处理程序函数上使用Object.bind()
,并且iOS WebKit小部件中没有.bind()
。 (由于桌面版WebKit(Chrome和Safari)版本中.bind()
可用,这令人赞叹。)
简单的解决方案是为Object.bind()添加polyfill定义。我使用MDN bind documentation page中的那个,并且没有任何问题。
答案 1 :(得分:0)
你检查了其他两个事件(仅对ios有效和辞职)吗?更多信息:http://shazronatadobe.wordpress.com/2012/03/14/apache-cordova-lifecycle-events-in-ios-4-versus-ios-5/
或查看文档中的iOS Quirks:http://docs.phonegap.com/en/1.6.1/cordova_events_events.md.html#pause
答案 2 :(得分:0)
您需要在设备中而不是在onLoad中添加侦听器。 就像这里一样
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
document.addEventListener("pause", onPause, false);
}
function onPause() {
}
希望有所帮助:)