Подтвердить что ты не робот

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

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

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

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

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

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

4b9b3361

Ответ 1

Я бы посмотрел, что:

  • Тип MIME действительно text/cache-manifest.
  • Кэш-манифест начинается с CACHE MANIFEST, ваши URL-адреса после этого либо относятся к манифестным, либо абсолютным URL-адресам.
  • У вас нет каких-либо неработающих ссылок в вашем манифесте или принудительного тега NETWORK:.

Ответ 2

Итак, я столкнулся с подобными проблемами с chrome и android на нескольких экземплярах. По-видимому, нет никакой проблемы с реализацией, потому что я пробовал ее на FF, и она работала нормально, и то же самое было в отношении сафари. Единственное, что я предполагаю, это вызвано тем, что данные получают кеш для веб-страницы в ОЗУ при работе хрома. Если вы закроете браузер, и андроид завершит процесс, новый экземпляр chrome будет инициализирован, а ваши существующие данные приложения исчезнут. Я не могу это подтвердить, но, похоже, это может быть проблемой.

Также проверьте, что ваш сервер настроен для правильной отправки типа mime: Как настроить сервер для отправки правильных типов MIME

Ответ 3

Какое имя файла вашего кэша отображается? Я слышал, что расширение может повлиять на поведение Android. Убедитесь, что ваш файл заканчивается на .manifest

Кроме того, убедитесь, что ваш сервер правильно обслуживает тип MIME для файлов манифеста, который text/cache-manifest

Ответ 4

В дополнение к ответу Ben Max Rubinstein и Compid, если ваш URL-адрес приложения выглядит примерно так: example.com/myapp вам нужно добавить следующую косую черту, например: example.com/myapp/.

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

Ответ 5

То, с чем я столкнулся, состояло в том, что конфигурации .manifest в конфигурации Apache mime.types были правильно установлены на text/cache-manifest, а затем несколько строк ниже были перезаписаны как application/x-ms-application (для совместимости с MS 'ClickOnce thing). Чтобы решить эту проблему, я принял разное имя файла, а именно .cachemanifest, правильно настроил его тип mime, перезапустил Apache, переименовал файл манифеста как cache.cachemanifest, изменил my <html> чтобы указать на этот файл, а затем я, наконец, смог кэшировать мое веб-приложение на Android (в настольных браузерах не было никаких проблем, которые, по-видимому, не заботятся о типе файла манифеста mime). Надеюсь, это поможет.