2012-11-07 65 views
1

我知道當應用程序發送到後臺時(即在應用程序運行時按下home按鈕),iPhone停止運行,但我希望能夠檢測到JavaScript啓動時是否發生了這種情況當應用程序重新激活時再次。如何判斷iPhone是否從javascript中返回背景?

我一直在嘗試的一種解決方案是讓迭代器不斷運行以「檢入」,然後運行檢查來判斷應用程序是否已轉到後臺。

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 

有沒有更好的方法來做到這一點?我用這種方法發現的問題是,如果用戶快速關閉並重新打開應用程序,它就不起作用,但我還沒有想出一個更好的方法來檢測這個。

+0

爲什麼你首先需要這個? – millimoose

+0

如果用戶背景頁面在1.1秒內返回,他們真的離開了嗎? – duskwuff

+0

基本上,我試圖製作視頻元素自動播放。我已經寫了js代碼在頁面加載時執行此操作,但是如果應用程序轉到背景並且他們回來,那麼視頻將需要刷新。也許有更好的方法來做到這一點? – caffein

回答

2

您可以使用'pageshow'事件。在手機上訪問此頁面,http://jsfiddle.net/vbuDh/

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

    alert('dasd'); 

},false);​ 

這將隨時解僱的標籤獲得焦點,或移動Safari瀏覽器被重新激活此頁面上。

相關問題