4

iOS4.3でiPhone4でネイティブアプリを作っていました

私の Body 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を使用しています

4

3 に答える 3

1

Object.bind()ハンドラー関数を使用しているため、イベントリスナーが確立されて.bind()おらず、iOS WebKit ウィジェットでは使用できないと思います。(デスクトップ WebKit (Chrome および Safari) バージョンで利用できるため、これは驚くべきこと.bind() です。)

簡単な解決策は、Object.bind() のポリフィル定義を追加することです。私はMDN bind documentation pageのものを使用していますが、問題はありませんでした。

于 2012-07-26T19:11:24.243 に答える
0

申し訳ありませんが、まだコメントできません;)

他の 2 つのイベント (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 に答える
0

onLoad ではなく deviceready にリスナーを追加する必要があります。たとえばここのように

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

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

function onPause() {
}

それが役に立てば幸い :)

于 2012-05-22T07:39:05.673 に答える