iPad Home Screen App обновляется при каждом открытии - PullRequest
16 голосов
/ 14 июля 2011

Я пишу веб-приложение для iPad с использованием HTML5 и SenchaTouch. Приложение использует манифест кэша для работы в автономном режиме. После того, как он был добавлен на домашний экран и открыт без Safari, он будет обновляться каждый раз, когда открывается, даже если просто перейти на домашний экран и обратно. Желаемое поведение - выходить из приложения, делать что-то еще, а затем возвращаться в приложение со всем без изменений.

Пример похожего приложения, которое отображает такое же (нежелательное) поведение, можно найти здесь: http://ignitedmediadesign.com/WebApp/index.html

Я читал, что использование манифеста кэша должно было решить эту проблему на iPhone (http://www.stevesouders.com/blog/2011/06/28/lack-of-caching-for-iphone-home-screen-apps/), но, похоже, не помогло ни iPhone, ни iPad.

Есть ли другой способ исправить это? Есть ли какой-то секрет для кэширования файлов манифеста, который останавливает это, что я мог пропустить?

1 Ответ

7 голосов
/ 18 июля 2011

У меня сложилось впечатление, что это просто природа веб-приложений "домашнего экрана", которые работают за пределами обычного Safari. У меня есть приложение, которое прекрасно работает в Safari с минимальным сохранением состояния, но взорванная не-Safari версия обновляется каждый раз. РЕДАКТИРОВАТЬ: Даже демонстрируемый пример O'Reilly, который использует манифест кэша, перезагружается каждый раз при добавлении на главный экран.

Возможно, вы захотите взглянуть на создание «маршрутов» (фрагментов URL), которые указывают на пару контроллер / действие. Посмотрите на пример MVC PhoneGap (Если вы не используете PhoneGap, вы можете прокрутить все эти вещи и реализовать свою собственную модель данных и хранить). Также посмотрите этот Sencha Touch MVC учебник .

Кроме того, большинство визуализированных сенсорных компонентов sencha, кажется, поддерживают состояние между изменениями активного элемента. Например. У меня есть основная TabPanel, которая содержит все вспомогательные панели. При переключении между вкладками на основной панели вкладок TabPanel каждая вложенная панель сохраняет свой рендеринг, если только я не установил действие слушателя или контроллера, чтобы сделать иначе.

Надеюсь, это поможет.

...