Автономный режим приложения Cordova PWA - PullRequest
0 голосов
/ 11 октября 2018

Я создал приложение angular + workbox, которое теперь преобразуется с помощью проекта PWABuilder в Cordova для платформы ios.

Теперь моя проблема началась с автономной страницы, я хочу, чтобы мое приложение работало так же, как и набраузер Chrome с автономным режимом.То есть, даже если я нахожусь в автономном режиме, я могу использовать веб-сайт и хранить запросы на будущее.

Но на устройстве IOS, когда я открываю приложение, затем включаю режим полета или отключаю Wi-Fiи перезапустите приложение, появится белый экран.(Поддержка автономных страниц отключена в manifest.js - мне не нужен Offline.html)

Я зарегистрировал маршрутизацию по

workbox.routing.registerNavigationRoute('/');

А затем

// couple of following lines:
workbox.routing.registerRoute('regex with js,manifest...etc', networkFirstStrategy({cacheName} ...)

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

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

1 Ответ

0 голосов
/ 27 октября 2018

Ответ

WebView, используемый Cordova в последней версии iOS (12.0.1), не будет запускать Workbox, поскольку он не поддерживает Service Workers.

Детали

Приложения Cordova запускаются в WebView.

Приложение выполняется в WebView в собственной оболочке приложения ... source

WebView в последней версии iOS (12.0.1) поддерживает Service Workers только в трех конкретных контекстах, не включая приложения Cordova.

В настоящее время[Service Worker API] доступен только в Safari, приложениях, использующих SFSafariViewController, и веб-приложениях, сохраненных на главном экране. source

Следующие шаги

Возможно добавить поддержку Service Worker через плагин Cordova.Например: cordova-plugin-service-worker .

Кроме того, вам также может понадобиться добавить поддержку фоновой синхронизации, поскольку последний Safari не поддерживает фоновую синхронизацию .Например: cordova-plugin-service-worker-background-sync .

Документы Workbox заявляют, что они предоставляют запасную стратегию, когда фоновая синхронизация не поддерживается:

Workbox Background Sync ... также реализует резервную стратегию для браузеров, которые еще не реализуют BackgroundSync. source

Однако открытый выпуск на Github показывает, что стратегия отката может не работать на iOS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...