IOS: отключил ли Apple возможность автономной работы HTML5 для веб-приложений, сохраненных на главном экране?
Я много работал над тем, чтобы несколько веб-приложений работали в автономном режиме на iOS, используя манифест HTML5. Я столкнулся с типичными проблемами, которые есть у всех остальных, и исправил их, и все, кажется, работает нормально, за исключением случаев, когда я сохраняю веб-приложение на рабочем столе на своем iPhone 4.
Если я это сделаю, а затем включите режим самолета, я получаю следующее предупреждение при попытке получить доступ к приложению через главный экран: "ваше имя-приложение не может быть открыто, потому что оно не подключено к Интернету". Доступ к приложению через браузер Safari отлично работает в автономном режиме.
Если кто-нибудь знает, если это ошибка с моей стороны, или даже тонкая возможность работы, расскажите.
Даже при загрузке нового веб-приложения Financial Times (очень хорошо с обширной поддержкой LocalStorage) возникает ошибка при доступе к нему в автономном режиме с главного экрана.
Технические характеристики: Запуск iPhone 4 с iOS 4.3.3 (но также видел проблему в 4.3.2)
Ответы
Ответ 1
После прочтения комментариев (особенно Rowan's) я провел больше тестов и нашел ответ:
Нет, Apple не отключила автономную функцию HTML5 для веб-приложений, сохраненных на главном экране, она работает - по большей части. Есть ошибка, которая сделает ее неработоспособной. Кажется, он не имеет ничего общего с вашей установкой манифеста (если, возможно, он не загрузил плохой манифест или неполный манифест в какой-то момент.) Мы не знаем, насколько широко распространено это, но исправить это, чтобы очистить ваш кэш Safari для мобильных устройств.
Здесь шаги:
- Закройте веб-приложение (убедитесь, что оно не торчит в фоновом режиме).
- Очищенный кэш Safari для мобильных устройств: настройки > Safari > Clear Cache
- Открылось приложение (для кэширования).
- Закройте веб-приложение еще раз (убедитесь, что он не торчит в фоновом режиме).
- Включено "Режим самолета": Настройки > Режим полета
- Открыл приложение.
Теперь он должен работать в автономном режиме. Если это не так, то это, вероятно, отдельная проблема манифеста в вашем приложении. Похоже на странную ошибку с кешем браузера - или, возможно, кеш был полностью заполнен? Кто знает, но это ответ. Спасибо, ребята.
Ответ 2
добавьте это в свой html:
http://jonathanstark.com/blog/2009/09/27/debugging-html-5-offline-application-cache/
Я нашел его массово полезным - хотя я создал файл манифеста и сравнил его с другими людьми, я обнаружил, что эта отладка JavaScript script дала мне ключ, который я бы никогда не нашел иначе. У меня, видимо, была синтаксическая ошибка в моем манифесте... Короче говоря, мне пришлось удалить все и добавить пути к каждому файлу/изображению по одному. Конечный результат был тем же, однако он работал... как странно!!! пробелы/комментарии влияют на синтаксис файла?
Ответ 3
iOS кажется очень чувствительным к проблемам при загрузке в автономном режиме.
Я получал сообщение об ошибке "не удалось открыть", когда отключен на странице, над которой я работал. Проблема оказалась в том, что страница создала iframe, указывающую на сайт, у которого не было AppCache. Удаление этих iframe исправило проблему.
В моем случае я обработал его с помощью window.navigator.standalone
, который сообщает вам, работаете ли вы в домашнем приложении iOS. Код выглядел так:
if (!navigator.standalone) insertFrames();