Ответ 1
TL; DR Вам нужно будет разработать приложение для использования локального хранилища или файлов cookie или другого механизма, с помощью которого вы можете сохранить состояние. Он должен будет посмотреть на это локальное хранилище и перестроить его интерфейс каждый раз, когда он запускается. Используя локальное хранилище или webdb (обесценивается, но поддерживается), вам нужно сохранить каждое изменение состояния и убедиться, что вы перезагрузите их, когда ваша страница загружается в браузере.
-
Определить минимизацию? Запуск в фоновом режиме?
Ваш webapp, независимо от его статуса на рабочем столе, представляет собой просто другую страницу, загруженную в браузер. Из-за отсутствия памяти на устройстве и б), как многозадачность работает, операционная система может запросить приложения для освобождения памяти или даже для завершения работы в любое время.
Вот почему, когда вы создаете приложение iOS, у вас есть:
- (void)applicationWillTerminate:(UIApplication *)application
Этот метод позволяет вам, как разработчику, указывать поведение для использования (например, сохранение пользовательских данных) до того, как ваше приложение завершит работу, когда оно получит сигнал завершения работы от ОС. Это также объясняет, почему руководства iOS-разработчиков просят вас сохранить состояние и всегда следить за тем, чтобы ваше состояние было восстановлено, когда приложение выведено на передний план. (Пользователи могут не знать, что приложение прекратилось, поскольку оно все равно появится в списке "запущенные приложения" при двойном щелчке по дому).
Теперь я понимаю, что вы говорите о веб-приложении, но это важно. Веб-страницы, и я уверен, что ваш, возьмите память в телефоне - у вас есть DOM, все ресурсы, информация о состоянии о том, где находится страница и какие виджеты установлены на что. Вы говорите, что ваше приложение довольно интерактивно, используя холст и прочее - я уверен, что он занимает много памяти.
Поэтому, когда вы помещаете Safari в фоновом режиме, Safari, скорее всего, уничтожает ваш кеш в памяти.
-
Safari имеет доступ как к локальным данным хранилища, так и к файлам cookie. iOS5 также имеет доступ к WebSQL (но не IndexedDB, который печален, потому что WebSQL обесценивается). Выберите яд.
-
Вам нужно всегда сохранять состояние. Поскольку у вас нет доступа к методам UIApplicationDelegate через JS, каждый раз, когда пользователь что-то делает, вам нужно сохранить это изменение состояния. И каждый раз, когда ваша страница перезагружается, для проверки состояния и перезагрузки требуется выбранная вами опция хранения.