2015-04-13 6 views
3

Я пытаюсь сделать доступной для мобильных устройств веб-страницу доступной в автономном режиме на устройствах iOS. Я добавил метатег совместимого мобильного веб-приложения в начало документа и задал файл cache.manifest, который содержит все ресурсы страницы.iOS Mobile Web App (с сохранением страницы на рабочий стол) offline availabilty

Я вижу, что файл cache.manifest используется авторитарно для загрузки ресурсов страницы (а именно, в консоли я вижу ресурсы, которые сохраняются на устройстве, когда я сначала очищаю/загружаю манифест и на последующей странице Я вижу, что событие «noupdate» запускается в окне window.applicationCache.

Несмотря на это, когда я отключу WiFi на устройстве iOS, в котором я сейчас тестирую (iPad 2nd gen, работающий под iOS 8.3), я сразу получаю сообщение сказать, что страница не может быть загружена, потому что невозможно найти сервер, единственные опции в этом сообщении - повторить попытку (приводя к той же ошибке) или закрыть мобильное веб-приложение.

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

Может кто-нибудь посоветует, как я могу подавить это сообщение «автономная ошибка», или исправить файл cache.manifest, чтобы он работал так, как ожидалось, позволяя мне использовать мобильное веб-приложение, которое сохраняется на рабочем столе, подключен к Интернету?

ответ

0

NB: Safari iOS и настольные Safari не поддерживают технологию сервисных работников, и для этого нет четкой дорожной карты.

С этого момента в 03/2016 service workers have better browser поддержка (Chrome, Firefox) Я бы рекомендовал использовать эту функцию в сочетании с manifest.json.

Что работало для меня, чтобы обеспечить полный офлайн-опыт: sw-precache. Вы можете настроить его как задачу сборки (Gulp, Grunt) или запустить вручную. В результате веб-приложение загружается с UI даже в случае, если Wi-Fi выключен заранее.

Основная часть добавить правильные статические файлы маски - проверить staticFileGlobs недвижимость в writeServiceWorkerFile функции, чему-л так:

staticFileGlobs: [ 
       rootDir + '/css/**.css', 
       rootDir + '/', 
       rootDir + 'index.html', 
       rootDir + 'index.html/#/home', 
       rootDir + 'index.html/#/offline', 
       rootDir + '/img/**.*', 
       rootDir + '/js/**.js', 
       rootDir + '/locales/**.js' 
      ], 
+1

О.П. спрашивал о Mobile Safari, который, к сожалению, не вспомогательная служба работника в любое время скоро. –

+1

вы правы, я сделаю обновление в сообщении – shershen

+1

ОБНОВЛЕНИЕ: 3 августа 2017 года: Apple изменила свой статус для сервисных работников с «на рассмотрении» до «в разработке»! См. [This] (https://m.phillydevshop.com/apples-refusal-to-support-progressive-web-apps-is-a-serious-detriment-to-future-of-the-web-e81b2be29676) сообщение для деталей. – mesqueeb