4

我正在使用 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 中运行良好,当我手动最小化应用程序时,但当应用程序被语音来电中断时,应用程序不会暂停。

基本上暂停和恢复事件不会被触发。

我正在使用 Phonegap1.4.1

4

3 回答 3

1

我相信您的事件侦听器没有建立,因为您正在使用Object.bind()处理函数,并且.bind()在 iOS WebKit 小部件中不可用。(这很令人惊讶,因为在桌面 WebKit(Chrome 和 Safari)版本.bind() 中可用。)

简单的解决方案是为 Object.bind() 添加一个 polyfill 定义。我使用MDN 绑定文档页面中的那个,并且没有任何问题。

于 2012-07-26T19:11:24.243 回答
0

您需要在 deviceready 而不是 onLoad 中添加您的侦听器。就像这里一样

function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

function onDeviceReady() {
    document.addEventListener("pause", onPause, false);
}

function onPause() {
}

希望能帮助到你 :)

于 2012-05-22T07:39:05.673 回答
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

于 2012-05-21T20:15:42.343 回答