1

アプリがバックグラウンドに送信されると(つまり、アプリの実行中にホームボタンを押すと)、iPhoneがjavascriptの実行を停止することは知っていますが、javascriptが再び起動したときにこれが発生したかどうかを検出できるようにしたいと思いますアプリが再アクティブ化されます。

私が試してきた解決策の 1 つは、イテレータを常に実行して「チェックイン」し、それに対してチェックを実行して、アプリがバックグラウンドに移行したかどうかを確認することです。

var lastCheckinTime = new Date().getTime();
function checkin(){
  lastCheckinTime = new Date().getTime();
}
setIterator( checkin, 1000 );

// Later, some code that needs to know if iphone went to background
var now = new Date().getTime();
if( (now - lastCheckinTime) > 1100 ) {
  // run sent to background code

これを行うより良い方法はありますか?この方法で私が見つけた問題は、ユーザーがアプリをすばやく閉じて再度開いた場合に機能しないことですが、これを検出するより良い方法をまだ見つけていません.

4

1 に答える 1

2

'pageshow'イベントを使用できます。お使いの携帯電話でこのページにアクセスしてください、http://jsfiddle.net/vbuDh/

window.addEventListener('pageshow', function(ev){

    alert('dasd');

},false);​

これは、タブがフォーカスを取得するか、このページでモバイルSafariが再度アクティブ化されるたびに発生します。

于 2012-11-07T20:50:48.090 に答える