Это касается офлайн-приложений HTML5 на устройствах Android.
Мы сталкиваемся с проблемой, когда закладка офлайн-совместимого приложения HTML5 (с полным файлом манифеста кэша) не загружается в браузер Android при следующих условиях:
В результате мы получаем сообщение «Невозможно подключиться к Интернету». Приложение отлично работает на устройствах iOS при сохранении на рабочем столе и в режиме полета.
Есть ли конкретный способ сохранения приложения или это особенность Android?
Я бы посмотрел и увидел:
text/cache-manifest
. CACHE MANIFEST
, ваши URL-адреса после этого либо относятся к манифестным, либо абсолютным URL-адресам. NETWORK:
Таким образом, я столкнулся с аналогичными проблемами с хром и андроид на нескольких экземплярах. По-видимому, нет проблем с реализацией, потому что я пробовал его на FF, и он работал отлично, и то же самое было в отношении сафари. Единственное, что я предполагаю, это вызвано тем, что данные получают кеш для веб-страницы в ОЗУ при работе хрома. Если вы закроете браузер, и андроид завершит процесс, будет инициализирован новый экземпляр chrome, и ваши существующие данные приложения исчезнут. Я не могу это подтвердить, но, похоже, это может быть проблемой.
Также проверьте, настроен ли ваш сервер правильно настроить тип mime: как настроить сервер для отправки правильных MIME-типов
Каково имя файла вашего манифеста кэша? Я слышал, что расширение может повлиять на поведение Android. Убедитесь, что ваш файл заканчивается .manifest
Кроме того, убедитесь, что ваш сервер правильно обслуживает тип MIME для файлов манифеста, который представляет собой text/cache-manifest
В дополнение к ответу Бен Макса Рубинштейна и Компида, если ваш URL-адрес приложения выглядит примерно так: example.com/myapp
вам нужно добавить следующую косую черту, например: example.com/myapp/
.
Когда вы в сети, сервер будет перенаправлять вас автоматически, но если вы находитесь в автономном режиме, очевидно, что этого не произойдет.
Я столкнулся с тем, что файлы .manifest
в конфигурации mime.types
Apache были правильно настроены на text/cache-manifest
а затем несколько строк ниже были перезаписаны как application/x-ms-application
(для совместимости с MS 'ClickOnce thing). Чтобы решить эту проблему, я принял окончание разных файлов, а именно .cachemanifest
, правильно настроил его тип mime, перезапустил Apache, переименовал файл манифеста как cache.cachemanifest
, изменил атрибут <html> manifest, чтобы указать на этот файл, а затем я был Наконец, удалось кэшировать мое веб-приложение на Android (в настольных браузерах не было никаких проблем, которые, по-видимому, не заботятся о типе файла манифеста mime). Надеюсь это поможет.