0

私のアプリには、アプリがバックグラウンドにあるときに起動するはずのタイマーがありますが、ios の癖により、アプリが再開されるまで onPause 関数は起動されません。私は obj-C から JavaScript 関数を起動する方法を研究してきましたが、それを機能させることができないようです。

次のコードがあります

// CUSTOM CODE TO DETECT APP STATE
- (void)applicationDidEnterBackground:(UIApplication *)application {

NSString* jsString = [NSString stringWithFormat:@"onPause;"];
[self.viewController.webView stringByEvaluatingJavaScriptFromString:jsString];

NSLog(@"OBJ-C paused");

}

私のjsコードは次のようになります。

function onPause() {
            console.log("JS paused");
        }

アプリがバックグラウンドに入ると、OBJ-C ログのように見えますが、js ログを取得できず、アプリを起動してもタイマーが一時停止していません。

OBJ-Cの経験がなく、Phonegap 2.1.0を使用しています。

4

2 に答える 2

0

解決しました!!! 次のリンクはこちら。文書化されていないイベントが 2 つあります。辞任してアクティブにすることで、私の目的のために機能するようになりました。

document.addEventListener("resign", resign, false);
document.addEventListener("active", active, false);

        function resign() {
            // pause code fired
        }

        function active() {
            //resume code fired
        }

それが役に立てば幸い!

于 2012-10-23T11:06:06.127 に答える
0

使ってみてくださいapplicationWillResignActive:

アプリが既にバックグラウンドに送信されている場合、アプリはおそらくもう反応しません。

于 2012-10-22T12:24:46.747 に答える