Запретить перезапуск веб-приложения на переключателе задач iPad - PullRequest
6 голосов
/ 20 июля 2011

У меня запущено веб-приложение на iPad. Он работает в полноэкранном режиме. Если я переключаю задачу на другое приложение (дважды щелкнув по кнопке «Домой» и т. Д.), А затем снова переключаюсь на свое веб-приложение, оно перезапускается.

Есть ли способ предотвратить перезапуск веб-приложения, когда оно получает фокус после переключения задач iPad? Очевидно, я просто хочу, чтобы он проявил себя в том же состоянии, в каком он был, когда потерял фокус.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 30 сентября 2011

Нет, это невозможно.

Лучший способ действовать - это сохранить состояние в localStorage. Если вы используете, например. URL-хэш для отслеживания вашего состояния (например, myApp.html / # loginScreen), можно сохранить эту информацию и затем применить ее к location.hash, который отправит window.onhashchange.

Другими словами (коды - это просто пример, написанный на лету):

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);
0 голосов
/ 30 января 2013

По крайней мере, под 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);

Для более детального обсуждения этой стратегии, посмотрите на СохранитьPHP-сессия в веб-приложении на iPhone

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...