Есть ли способ автоматического обновления (или просто очистки кэша) PWA на iOS? - PullRequest
0 голосов
/ 07 сентября 2018

Я боролся на iOS с тем, что легко работает на Android: автоматическое обновление моего PWA при появлении новой версии. Я совсем не уверен, что это возможно даже на iOS. Я использовал vue.js и Quasar для создания своего приложения, и на Android все работает "из коробки". Вот (уродливый, ужасный) способ, которым в настоящее время обстоят дела в версии для iOS:

  1. Я могу проверить версию на своем собственном сервере и сравнить ее с текущей, хранящейся в моем приложении (в indexedDB), и выдать уведомление о появлении новой версии. Пока все хорошо.
  2. Кроме того, что пользователь вручную удаляет кэш SAFARI (!!), я никак не могу понять, как программно очистить кэш PWA из приложения или вызвать загрузку другим способом.

Итак, на данный момент, я думаю, мои вопросы:

  1. Кто-нибудь смог получить PWA на iOS (11.3 или более поздней версии) для автоматического обновления при появлении новой версии?
  2. Есть ли способ очистить кеш приложения (safari) из моего PWA?

Очевидно, что это невероятно ужасно, когда пользователь уведомляет пользователя о том, что для обновления ему необходимо выполнить несколько шагов за пределами приложения, чтобы иметь возможность его обновить, но, похоже, именно в этот момент iOS стоит, если я не чего-то не хватает Кто-нибудь где-нибудь делал эту работу?

1 Ответ

0 голосов
/ 08 сентября 2018

После нескольких недель поиска я наконец нашел решение:

  1. Я добавляю проверку на строку версии на сервере и возвращаю ее в приложение, как упомянуто выше.

  2. Я ищу его в localtstorage (IndexedDB), и если я его не нахожу, я добавляю его.Если я нахожу его, я сравниваю версии и, если на сервере есть более новая, я выхожу в диалоговое окно.

  3. Закрытие этого диалога (моя кнопка помечена как «обновить»)запускает window.location.reload(true), а затем сохраняет новую строку версии в локальном хранилище

Вуаля!Мое приложение обновлено!Я не могу поверить, что все сводилось к чему-то так простому, я нигде не мог найти решение.Надеюсь, это поможет кому-то еще!

...