iOS: Apple отключила автономную возможность HTML5 для веб-приложений, сохраненных на главном экране?

Я проделал большую работу, чтобы заставить несколько веб-приложений работать в автономном режиме на iOS с помощью манифеста HTML5. Я столкнулся с типичными проблемами, которые есть у всех, и исправил их, и все работает нормально, за исключением случая, когда я сохраняю веб-приложение на рабочий стол на своем iPhone 4.

Если я сделаю это, а затем включу режим полета, я получу следующее предупреждение при попытке доступа к приложению через главный экран: «ваше-приложение-имя не может быть открыто, потому что оно не подключено к Интернету». ." Доступ к приложению через браузер Safari работает без подключения к Интернету.

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

Даже загрузка нового веб-приложения Financial Times (очень хорошо сделанного с обширной поддержкой localStorage) приводит к ошибке при доступе к нему в автономном режиме с главного экрана.

Технические характеристики: запуск iPhone 4 с iOS 4.3.3 (но также обнаружена проблема в версии 4.3.2).


person Mauvis Ledford    schedule 07.06.2011    source источник
comment
@Nick: определенно заговор :)   -  person Paul D. Waite    schedule 08.06.2011
comment
@Mauvis Ledford Я только что проверил sixrevisions.com/web-development/html5-iphone -app и не работает на моем iPhone4 iOS 4.3.1. Я думаю, что Apple сломала это, раньше это работало.   -  person Nick Weaver    schedule 08.06.2011
comment
@Mauvis Ledford Я был бы очень заинтересован в дальнейшей отладке, так как мы получаем несколько отчетов о том, что приложение FT не работает в автономном режиме. Тесты здесь (на iPad 4.2 и 4.3.3 и iPhone 4.3.3) показывают, что приложение работает в автономном режиме на рабочем столе или в доке; Я даже пытался перейти в автономный режим, а затем переместить его с экрана на док-станцию, все еще работает! Определенно где-то с манифестами связано немного колдовства, но я не могу определить это последнее что-то... (FWIW, кажется, что очистка кеша и баз данных, а затем перезапуск устройства он заработает, если есть ошибки).   -  person Rowan    schedule 08.06.2011
comment
Проверено снова на другом iPhone4 iOS 4.3.3 сегодня с FT на главном экране и включенным режимом полета.   -  person Nick Weaver    schedule 09.06.2011
comment
@Nick Weaver: см. мой ответ ниже. Похоже, что достаточно просто очистить кеш Safari — к сожалению, клиенты не узнают об этом, если это случится с ними, но спасибо за подсказку! Не стесняйтесь продолжать публиковать сообщения здесь, если вы когда-нибудь получите представление о том, насколько широко распространена эта проблема. Может означать смерть автономных приложений html5 на iOS, если это популярная проблема.   -  person Mauvis Ledford    schedule 09.06.2011
comment
Обратите внимание, что приложение FT добавило всплывающее окно с инструкциями по очистке кеша и перезапуску устройства для использования в автономном режиме. Слава Богу за этот пост, я уже начал его терять...   -  person zinndesign    schedule 08.07.2011
comment
Я столкнулся с той же проблемой на iPad. В моем случае в моем манифесте отсутствовал файл. Вы можете проверить свой манифест, используя manifest-validator.com.   -  person Emil G    schedule 31.05.2016


Ответы (3)


Прочитав комментарии (особенно Роуэна), я провел больше тестов и нашел ответ:

Нет, Apple не отключала автономную возможность HTML5 для веб-приложений, сохраненных на главном экране, по большей части это работает. Есть ошибка, из-за которой он не работает. Похоже, это не имеет ничего общего с настройкой вашего манифеста (если, возможно, в какой-то момент он не загрузил неверный манифест или неполный манифест). Мы не знаем, насколько это распространено, но исправление заключается в очистке кэша Mobile Safari.

Вот шаги:

  1. Закройте веб-приложение (убедитесь, что оно не работает в фоновом режиме).
  2. Очистил кеш Mobile Safari: Настройки > Safari > Очистить кеш
  3. Снова открыл приложение (для кэширования).
  4. Снова закройте веб-приложение (убедитесь, что оно не работает в фоновом режиме).
  5. Включен «Режим полета»: «Настройки» > «Режим полета».
  6. Переоткрыл приложение.

Теперь он должен работать в автономном режиме. Если это не так, то это, вероятно, отдельная проблема с манифестом в вашем приложении. Похоже на странную ошибку с кешем браузера - или, может быть, кеш был полностью заполнен? Кто знает, но это ответ. Спасибо, парни.

person Mauvis Ledford    schedule 08.06.2011
comment
Одно небольшое дополнительное предостережение на этом фронте: хотя это, вероятно, улучшает ситуацию с домашним экраном, очистка кеша нарушит использование манифеста в MobileSafari. После очистки кеша замена манифеста завершится ошибкой с неизвестными ошибками в MobileSafari до тех пор, пока MobileSafari не будет перезапущена. Предположительно, это не влияет на приложения для домашнего экрана, потому что они каждый раз перезапускаются… (Люди, использующие бета-версии будущих выпусков, могут обнаружить, что эта конкретная ошибка устранена…) - person Rowan; 09.06.2011
comment
Я просто хотел подтвердить, что выполнение этих шагов также помогло решить проблему на моем iPhone. То же самое веб-приложение, которое я разработал, отлично работало в режиме полета на iPad, но iPhone жаловался, что веб-приложение не может быть открыто, потому что оно не подключено к Интернету. После очистки кеша Mobile Safari с помощью описанных выше шагов веб-приложение теперь работает на моем iPhone. - person Dean L; 10.06.2011

iOS кажется очень чувствительной к проблемам с загрузкой в ​​автономном режиме.

Я получал сообщение об ошибке «невозможно открыть» в автономном режиме на странице, над которой работал. Проблема оказалась в том, что страница создала iframe, указывающий на сайт, на котором не было AppCache. Удаление этих фреймов устранило проблему.

В моем случае я обработал это с помощью window.navigator.standalone, который сообщает вам, работаете ли вы в приложении для домашнего экрана iOS. Код выглядел так:

if (!navigator.standalone) insertFrames();
person Dan Fabulich    schedule 19.10.2016

добавьте это в свой html:

https://web.archive.org/web/20170201180939/https://jonathanstark.com/blog/debugging-html-5-offline-application-cache?filename=2009/09/27/debugging-html-5-offline-application-cache/

Я нашел его чрезвычайно полезным — даже несмотря на то, что я создал свой файл манифеста и сравнил его с манифестами других людей, этот сценарий отладки JavaScript дал мне ключ к разгадке, который я никогда бы не нашел иначе. Очевидно, у меня была синтаксическая ошибка в моем манифесте... Короче говоря, мне пришлось удалить все и добавить пути к каждому файлу/изображению один за другим. Конечный результат был таким же, однако это сработало... как странно!!! влияют ли пробелы/комментарии на синтаксис файла?

person Sarah Williams    schedule 25.07.2011
comment
Неработающая ссылка здесь. - person Marc; 17.08.2017