iphone автономно кэшированные приложения исчезают после закрытия в сафари? - PullRequest
3 голосов
/ 11 мая 2009

Мы разрабатываем html5 автономное веб-приложение для ipod touch / iphone. У нас есть манифесты и все работает правильно, но мы не можем понять, почему наше приложение не откроется после закрытия «вкладки» в iphone safari.

Например, вот что работает:

1) откройте URL-адрес html-файла с включенной поддержкой в ​​режиме сафари на ipod touch

2) выйти из сафари, выключить Wi-Fi

3) вернуться в сафари, где динамическое веб-приложение находится в окне, нажать обновить

4) приложение работает в автономном режиме!

однако, если мы сделаем это, автономное приложение исчезнет:

5) добавить закладку к URL-адресу приложения (или значку главного экрана)

6) закрыть «вкладку» или окно в сафари

7) открыть закладку или значок главного экрана

8) сообщение об ошибке: «Не удается открыть страницу: Safari не может открыть страницу, потому что она не подключена к Интернету.»

Я немного погуглил по этой проблеме, и вы знаете, как она идет, я найду ответ через 2 секунды после нажатия здесь на кнопку "опубликовать" ... но в любом случае, мне кажется, что текущая последняя версия ОС iphone safari пытается выполнить поиск DNS по URL и выдает ошибку, вместо того чтобы понять, что локально сохраненное приложение уже установлено на устройстве.

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

Ответы [ 3 ]

2 голосов
/ 14 февраля 2010

Возможно, ваш сервер неправильно настроен. Документы Apple не дают понять это.

Если на вашем сервере работает Apache (скорее всего), вам нужно отредактировать этот файл:
/user/local/apache2/conf/mime.types

Добавьте эту строку в конец:
text/cache-manifest manifest

Вам нужно будет перезапустить Apache, чтобы настройки вступили в силу. Может быть что-то вроде
restart_apache из скорлупы.

То, что происходит здесь, заключается в том, что серверу необходимо вернуть вам файл кэша с заданным типом содержимого. Если вы этого не сделаете, файл, вероятно, вернется как «текст». Если установлено правильно, он вернется с типом «cache-manifest».

Чтобы проверить, какому типу mime возвращается документ, используйте web-sniffer.net . Введите URL-адрес вашего файла манифеста - вы увидите результат, отображаемый в Content-Type:

1 голос
/ 02 февраля 2012

Совет. Убедитесь, что при каждом изменении файлов в манифесте вы что-то изменяете в самом манифесте, чтобы указать, что эти файлы необходимо загрузить. И следите за кэшированными файлами, которые не могут быть проверены на изменения в зависимости от их настроек срока действия

0 голосов
/ 05 декабря 2010

Кажется, Safari (и, следовательно, iPhone) ожидает, что все файлы будут перечислены в манифесте - даже главный файл приложения. Я использовал default.asp в качестве главной страницы моего приложения и не включал его в манифест. Мое приложение запускалось с mydomain.com/myapp/, поэтому браузер никогда не видел «default.asp». Кроме того, согласно спецификации HTML5, главная страница не обязательно должна быть в манифесте, но, очевидно, Safari видит это немного по-другому.

Мое решение состояло в том, чтобы избежать использования default.asp и вызова моего приложения app.asp и добавления «app.asp» в манифест. Надеюсь, это поможет.

...