Я разрабатываю веб-приложение HTML5 для использования офлайн на iPad2 с помощью мобильного Safari и функции «Добавить на главный экран». Я могу добиться автономного кэширования с помощью файла cache.manifest на рабочем столе Chrome, но не могу заставить его работать в iOS mobile Safari.Веб-приложение HTML5 не кэшируется в iOS Safari для использования в автономном режиме
Приложение работает плавно на iPad, но в режиме онлайн, но как только я выхожу в автономный режим, я получаю следующие сообщения об ошибке: «MyApp не открывается, потому что он не подключен к Интернету» (в «добавленном на главный экран» вид на iPad) и «Safari не может открыть страницу, потому что она не подключена к Интернету» (в сафари-виде на том же iPad).
Я прочитал сотни проблем, связанных с поиском и устранением неисправностей/страниц вопросов, и продемонстрировал учебные пособия в Сети, пытаясь решить эту проблему, и ни одно из предложений не работает. Прочитав так много об этой возможности, это должно быть очень легко реализовать, и все же я здесь.
Вот краткое изложение того, что я сделал/пытался/использовал до сих пор без успеха. Я попробовал все ниже, используя как cache.manifest и manifest.appcache вариации без успеха, но для простоты я буду документировать только случай cache.manifest:
Я разработка и тестирование с использованием новейшего Xampp Apache для Windows, сервер локально установленный на Win10 x64
целевое устройство является iPad2 работает IOS версии 8.4 и мобильную версию сафари 8. Моя строка полный агент пользователя:
Mozilla/5.0 (iPad; CPU OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H143 Safari/600.1.4
В Xampp я обновил файл httpd.conf, чтобы включать правильные типы MIME для .manifest
AddType text/cache-manifest .manifest
В Xampp я обновил файл mime.types под XAMPP \ Apache \ конф \ включать правильные типы MIME для .manifest
text/cache-manifest manifest
в Xampp, так как мой веб-приложение использует TTF, Уофф, ICO, PNG, JPG, JS, mp3 и CSS файлы, я проверил файл mime.types под XAMPP \ Apache \ конф \, чтобы убедиться, что он включает в себя типы MIME для:
application/x-font-ttf ttf ttc application/x-font-woff woff image/x-icon ico image/png png image/jpeg jpeg jpg jpe application/javascript js audio/mpeg mpga mp2 mp2a mp3 m2a m3a
Я поместил файл .htaccess в веб-приложений корневой каталог общественного HTML для правильных типов MIME для .manifest
AddType text/cache-manifest .manifest*
Я включил манифест атрибут в HTML-элемент индексной страницы:
<!DOCTYPE html> <html lang="en" manifest="cache.manifest"> <head>
Я попытался удалить эту строку из объявляющего index.html, но это не сработало:
<meta name="apple-mobile-web-app-capable" content="yes">
Я разрешил много времени для приложения для кеширования в Safari, прежде чем переключиться в режим полета и освежиться. Я использую машину Windows, поэтому не могу использовать Web Inspector для отладки. Я использовал Jonathan Stark's Debugging Script и JSConsole, чтобы попробовать и отладить, но на самом деле он не дает много полезной информации, кроме того, что он не закрыт, что я знаю, потому что он не работает.
Я создал файл cache.manifest и поместил его в общедоступный HTML-каталог веб-приложений. Я включил советы других решений, многие из которых, где производных от других вопросов StackOverflow, в то числе:
- В первую очередь я застрял с cache.manifest именем несколько источников посоветовали Safari мобильного телефона будет igrnore всего остального
- не включая файл index.html, который ссылается на .manifest
- каталог все ресурсы в разделе CACHE
- включая * после СЕТИ:
- включая все заголовки секций, даже если не используется
- Используется только относительный URI-х
- Содержимое манифеста файлов относительно файла манифеста (это в веб-приложений корневой каталог с index.html)
- манифеста файл обслуживается с того же происхождения, как хозяин
- Убедитесь, что все файлы доступны, чтобы избежать ошибок и сброса .manifest. Как я уже говорил в автономном режиме кэширования работает в настольном браузере Chrome, который проверяет содержимое манифеста,
- файл манифеста не отображает файл манифеста
Содержание манифеста:
CACHE MANIFEST
# ver 0.0.8
CACHE:
data/apple-touch-icon.png
data/favicon.ico
data/fnt0.ttf
data/fnt0.woff
data/fnt1.ttf
data/fnt1.woff
data/fnt2.ttf
data/fnt2.woff
data/fnt3.ttf
data/fnt3.woff
data/html5.png
data/html5-unsupported.html
data/img0.jpg
data/img1.png
data/img10.jpg
data/img11.jpg
data/img12.png
data/img13.png
data/img14.png
data/img15.png
data/img16.jpg
data/img17.png
data/img18.png
data/img19.png
data/img2.png
data/img20.png
data/img21.png
data/img22.png
data/img23.png
data/img24.png
data/img25.png
data/img26.png
data/img27.png
data/img28.png
data/img29.png
data/img3.png
data/img30.png
data/img31.png
data/img4.png
data/img5.png
data/img6.png
data/img7.png
data/img8.png
data/img9.png
data/player.js
data/slide1.css
data/slide1.js
data/slide10.css
data/slide10.js
data/slide11.css
data/slide11.js
data/slide12.css
data/slide12.js
data/slide13.css
data/slide13.js
data/slide14.css
data/slide14.js
data/slide15.css
data/slide15.js
data/slide16.css
data/slide16.js
data/slide17.css
data/slide17.js
data/slide18.css
data/slide18.js
data/slide2.css
data/slide2.js
data/slide3.css
data/slide3.js
data/slide4.css
data/slide4.js
data/slide5.css
data/slide5.js
data/slide6.css
data/slide6.js
data/slide7.css
data/slide7.js
data/slide8.css
data/slide8.js
data/slide9.css
data/slide9.js
data/sound1.mp3
NETWORK:
*
FALLBACK:
Я бы очень благодарен за свежий взгляд на эту проблему, я просто не вижу, где проблема.
Любые новости по этой теме? Кажется, у меня такая же проблема - она работает везде, кроме iPad Safari (работает iPad Chrome). – fnagel
@fnagel На этом этапе новостей нет, я пошел по другому пути, который был не совсем подходящим для моих нужд, поэтому я планирую скоро забрать его. На этот раз я начну с базового приложения с минимальными активами без активов, а затем создам. Это должно упростить проблему – DarkSpectrum