2011-07-20 52 views
6

我有一個在iPad上運行的Web應用程序。它以全屏模式運行。如果我任務切換到另一個應用程序(通過雙擊主頁按鈕等),然後切換回我的Web應用程序,然後我的Web應用程序重新啓動。阻止在iPad任務開關上重新啓動Web應用程序

有什麼辦法可以防止在iPad任務切換後收到焦點時重新啓動Web應用程序?顯然,我只是希望它能夠完全顯示出它失去焦點時的狀態。

謝謝。

+0

檢查Info.plist設置的:有一個關鍵的「應用程序不在後臺運行「嘗試將此值設置爲NO(或取消選中) – Hariprasad

+0

@Hariprasad - 嗨 - 這不是一個XCode應用程序,它是一個Web應用程序(HTML,Javascript,CSS)。我是否認爲info.plist適用於XCode,而不是Web應用程序?謝謝。 – Journeyman

+0

好吧,你是對的。這個網絡應用程序運行在瀏覽器中?或者像其他本地應用程序一樣運行。我不瞭解網絡應用程序。 – Hariprasad

回答

2

不,這是不可能的。

要採取行動的最佳方式是將狀態保存到localStorage中。如果你使用例如。用於跟蹤您的狀態的URL散列(例如,myApp.html /#loginScreen),可以存儲該信息,然後將其應用於將調度window.onhashchange的location.hash。

換句話說(代碼寫在飛只是例子):

1 - 商店相關信息的localStorage:

localStorage.setItem("state", "loginScreen"); 

2 - 檢索值上啓動,並將其應用到散列:

location.hash = (localStorage.getItem("state")) ? localStorage.getItem("state") : ""; 

3 - 結合事件偵聽器onhashchange並繼續從那裏:

window.addEventListener("hashchange", function() { 
    if (location.hash.length) { 
     alert("Current state of UI is :"+ location.hash); 
    } 
}, false); 
-1

至少在iOS 4.2.1,5.1.1,6.0和6.1下,這似乎是可能的;我認爲這個問題接受的答案是錯誤的。

關鍵是要做到這一點:

// Start or resume session 
session_start(); 

// Extend cookie life time by an amount of your liking 
$cookieLifetime = 365 * 24 * 60 * 60; // A year in seconds 
setcookie(session_name(),session_id(),time()+$cookieLifetime); 

對於這一戰略的更詳細的討論,看看Maintain PHP Session in web app on iPhone

相關問題