Как обновить PWA на основе Reactjs до новой версии? - PullRequest
1 голос
/ 10 июля 2019

Я занимаюсь разработкой приложения на основе реагирования. Я также сделал service-worker настройки на нем. После add to home screen приложение никогда не проверяет сервер на наличие новых обновлений.

Я тоже пробовал:

window.location.reload(true);

Но новая версия не обновляется.

Я использую Apache сервер для обслуживания папки build, а для обновления я получаю новую сборку своего проекта и обслуживаю ее на Apache сервере.

1 Ответ

1 голос
/ 11 июля 2019

Я наконец решил свою проблему через два дня.Проблема была в service-worker файле.Мне пришлось добавить прослушиватель событий, если страница перезагружена, а файлы на сервере изменились, поэтому он будет обновлять файлы.

Поэтому я добавил этот раздел в serviceWorker.js в функции register:

window.addEventListener('activate', function(event) {
      event.waitUntil(
          caches.keys().then(function(cacheNames) {
              return Promise.all(
                  cacheNames.filter(function(cacheName) {
                      // Return true if you want to remove this cache,
                      // but remember that caches are shared across
                      // the whole origin
                  }).map(function(cacheName) {
                      return caches.delete(cacheName);
                  })
              );
          })
      );
    });

Только не забудьте.Этот вызов слушателя при перезагрузке страницы.Поэтому я делаю сервис API, чтобы проверить, есть новая версия или нет.если есть новая версия, она должна перезагрузить страницу, чтобы получить новые файлы.

этот вопрос был настолько полезен: Как очистить кеш сервисного работника?

...