Приложение HTML5 офлайн на устройствах Android

Это касается офлайн-приложений HTML5 на устройствах Android.

Мы сталкиваемся с проблемой, когда закладка офлайн-совместимого приложения HTML5 (с полным файлом манифеста кэша) не загружается в браузер Android при следующих условиях:

  1. Закладка приложения в браузере
  2. Отключите все беспроводные подключения
  3. Закрыть браузер полностью.
  4. Попытка запустить закладку с главного экрана

В результате мы получаем сообщение «Невозможно подключиться к Интернету». Приложение отлично работает на устройствах iOS при сохранении на рабочем столе и в режиме полета.

Есть ли конкретный способ сохранения приложения или это особенность Android?

Solutions Collecting From Web of "Приложение HTML5 офлайн на устройствах Android"

Я бы посмотрел и увидел:

  1. MIME-тип действительно является text/cache-manifest .
  2. Ваш манифест кэша начинается с CACHE MANIFEST , ваши URL-адреса после этого либо относятся к манифестным, либо абсолютным URL-адресам.
  3. У вас нет каких-либо неработающих ссылок в вашем манифесте или принудительного тэга 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). Надеюсь это поможет.