Манифест HTML5 Cache в мобильном веб-приложении «добавлено на домашний экран» не работает - PullRequest
9 голосов
/ 13 апреля 2011

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

Мой манифест выглядит так:

CACHE MANIFEST
# Cache manifest version 0.0.5

http://www.mywebsite.com/appfolder/app/detail.html
http://www.mywebsite.com/appfolder/app/index.html
http://www.mywebsite.com/appfolder/app/list.html
http://www.mywebsite.com/appfolder/css/style.css
http://www.mywebsite.com/appfolder/src/iscroll.js
http://www.mywebsite.com/appfolder/js/jquery-1.5.1.min.js
http://www.mywebsite.com/appfolder/thumbs/1872A.jpg
http://www.mywebsite.com/appfolder/thumbs/1913.jpg
http://www.mywebsite.com/appfolder/thumbs/1916.jpg
http://www.mywebsite.com/appfolder/thumbs/1925.jpg
http://www.mywebsite.com/appfolder/carsimages/1872A_1.jpg
http://www.mywebsite.com/appfolder/carsimages/1872A_2.jpg

NETWORK:

# All URLs that start with the following lines
# are whitelisted.

CACHE:

# Additional items to cache.

FALLBACK:

Приложение работает без сбоев в сети, но как только я выхожу в автономный режим, я получаю следующие сообщения об ошибке: «Myappname не может быть открыто, потому что оно не подключено к Интернету» (в «добавлено на домашний экран» - вид на iPad) а также «Safari не может открыть страницу, потому что он не подключен к Интернету» (в режиме просмотра Safari на том же iPad)

Шаги, которые я уже предпринял: Убедитесь, что манифест обработан правильным типом содержимого, добавив его в мой файл .htaccess

AddType text/cache-manifest .manifest

Есть идеи, почему это не работает?

Ответы [ 7 ]

14 голосов
/ 13 июля 2011

Для iPad файл манифеста кэша ДОЛЖЕН БЫТЬ назван «cache.manifest».Это исправило проблему для меня.

1 голос
/ 25 июня 2015

Ресурсы должны находиться в разделе CACHE.Смотри http://www.html5rocks.com/en/tutorials/appcache/beginner/

1 голос
/ 13 апреля 2011

Если вы подключаетесь к онлайн-ресурсу, я ожидаю увидеть URL-адрес этого ресурса в разделе СЕТЬ. Каждый URL, к которому обращается приложение, должен быть указан в манифесте явно или неявно.

Попробуйте добавить:

NETWORK:
*

Чтобы указать, что любой URL может быть потенциально доступен в режиме онлайн.

0 голосов
/ 11 августа 2011

У меня была такая же проблема на iPad.Оказывается, он не любит файлы манифеста кэша в папке.У меня был /Content/cache.manifest, и он не работал (приложение не загружалось с домашнего экрана в автономном режиме).Когда я переместил файл манифеста в корень приложения и изменил ссылку на манифест на cache.manifest, он начал работать.

(Не обязательно называть cache.manifest - у меня это работает с CacheManifest.ashx)

0 голосов
/ 10 мая 2011

Обновление до моего предыдущего поста.Теперь я могу запустить свое автономное приложение HTML5 на своем iPad.Во-первых, я считаю, что вам нужно обновить iPad до версии не ниже 4.3.2 (не подтверждено, но сейчас я использую 4.3.3).И что еще более важно, файл манифеста кэша ДОЛЖЕН БЫТЬ назван «cache.manifest».В моих экспериментах, если вы используете любое другое имя, оно не будет работать в автономном режиме.Мой автономный режим работает в полноэкранном режиме (т. Е. Для параметра «apple-mobile-web-app-enabled» установлено значение «да»), и он будет запускаться с главного экрана в режиме авиакомпании.частично правильно.Кажется, что автономный режим работает только при указанных выше ограничениях.

0 голосов
/ 05 мая 2011

Мне любопытно, что ответит Лиз Дэйли. Я использую iPad, который я (к сожалению) обновил до iOS 4.3 с iOS 4.2. У меня было отлично работающее автономное приложение HTML5, которое можно запускать с главного экрана без подключения к Интернету и сохранять состояние в хранилище localStorage.

После того, как я обновил свой iPad до iOS 4.3, это приложение теперь НЕ работает без подключения к Интернету для перезагрузки страницы каждый раз, когда я запускаю ее с главного экрана, а также localStorage стирается, когда я выключаю питание. IPad.

Итак, у меня НАСТОЯЩИЕ проблемы с Safari при запуске моего автономного приложения на iOS 4.3 на моем iPad, и от Apple нет новостей о том, когда или если они собираются исправить эту проблему (по крайней мере, восстановить его с той же функциональностью в iOS 4.2).

0 голосов
/ 13 апреля 2011

Я понимаю, что в iOS 4.3 нарушена функция HTML 5 "автономное веб-приложение":

http://www.theregister.co.uk/2011/03/15/apple_ios_throttles_web_apps_on_home_screen/

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

Также см .: Автономное веб-приложение для iOS: загружает мой манифест, но не работает в автономном режиме

...