3

Я разрабатываю веб-приложение HTML5 для использования офлайн на iPad2 с помощью мобильного Safari и функции «Добавить на главный экран». Я могу добиться автономного кэширования с помощью файла cache.manifest на рабочем столе Chrome, но не могу заставить его работать в iOS mobile Safari.Веб-приложение HTML5 не кэшируется в iOS Safari для использования в автономном режиме

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

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

Вот краткое изложение того, что я сделал/пытался/использовал до сих пор без успеха. Я попробовал все ниже, используя как cache.manifest и manifest.appcache вариации без успеха, но для простоты я буду документировать только случай cache.manifest:

  1. Я разработка и тестирование с использованием новейшего Xampp Apache для Windows, сервер локально установленный на Win10 x64

  2. целевое устройство является 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 
    
  3. В Xampp я обновил файл httpd.conf, чтобы включать правильные типы MIME для .manifest

    AddType text/cache-manifest .manifest 
    
  4. В Xampp я обновил файл mime.types под XAMPP \ Apache \ конф \ включать правильные типы MIME для .manifest

    text/cache-manifest    manifest 
    
  5. в 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 
    
  6. Я поместил файл .htaccess в веб-приложений корневой каталог общественного HTML для правильных типов MIME для .manifest

    AddType text/cache-manifest .manifest* 
    
  7. Я включил манифест атрибут в HTML-элемент индексной страницы:

    <!DOCTYPE html> 
    <html lang="en" manifest="cache.manifest"> 
    <head> 
    
  8. Я попытался удалить эту строку из объявляющего index.html, но это не сработало:

    <meta name="apple-mobile-web-app-capable" content="yes"> 
    
  9. Я разрешил много времени для приложения для кеширования в Safari, прежде чем переключиться в режим полета и освежиться. Я использую машину Windows, поэтому не могу использовать Web Inspector для отладки. Я использовал Jonathan Stark's Debugging Script и JSConsole, чтобы попробовать и отладить, но на самом деле он не дает много полезной информации, кроме того, что он не закрыт, что я знаю, потому что он не работает.

  10. Я создал файл 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: 

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

+0

Любые новости по этой теме? Кажется, у меня такая же проблема - она ​​работает везде, кроме iPad Safari (работает iPad Chrome). – fnagel

+0

@fnagel На этом этапе новостей нет, я пошел по другому пути, который был не совсем подходящим для моих нужд, поэтому я планирую скоро забрать его. На этот раз я начну с базового приложения с минимальными активами без активов, а затем создам. Это должно упростить проблему – DarkSpectrum

ответ

0

Можете ли вы попытаться уменьшить размер кэшированных файлов? В моем случае это помогает, но не решает все проблемы). Размер кешированных файлов был не менее 30 МБ, после потери веса они стали < 1 Мб, и, наконец, AppCache начинает работать.