阻止在iPad任务切换上重新启动Web应用程序

时间:2011-07-20 08:58:37

标签: ipad web-applications

我在iPad上运行了一个网络应用。它以全屏模式运行。如果我的任务切换到另一个应用程序(通过双击主页按钮等),然后切换回我的网络应用程序,然后我的网络应用程序重新启动。

有没有办法阻止Web应用在iPad任务切换后收到焦点时重新启动?显然,我只是希望它能够完全呈现失去焦点的状态。

感谢。

2 个答案:

答案 0 :(得分:2)

不,这是不可能的。

行动的最佳方式是将州保存到localStorage。如果你正在使用eg。用于跟踪您的状态的URL哈希(例如,myApp.html / #logateScreen),可以存储该信息,然后将其应用于将调度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 :(得分:-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