Метод обновления рабочей панели отображает "внешние" события

Я использую рабочее окно v5.0.0-beta.1 и опробовал новую функцию обновления, которая проверяет наличие новой версии ПО. Я слушаю активированное событие, чтобы решить, следует ли информировать пользователей в зависимости от флага "isUpdate".

Хотя само обновление, похоже, работает, вместо замены текущего ПО на "isUpdate", установленное на true, оно представляет новое ПО как внешнее ПО с соответствующими внешними событиями. Может быть, я использую как skipWaiting, так и clientsClaim? Есть другие идеи?

Таким образом, проверка обновлений, запускаемая моим приведенным ниже кодом, попадет во второй обработчик событий.

if ('serviceWorker' in navigator) {
      _this.theWorkBox = new Workbox('../service-worker.js'); 

      _this.theWorkBox.addEventListener('activated', event => {      
        if (event.isUpdate && confirm(`New content is available!. Click OK to refresh`)) {
          setTimeout(function () {
            window.location.reload();
          }, 3000);
        }
      }); 

     _this.theWorkBox.addEventListener('externalactivated', () => {      
        if (confirm(`New content is available!. Click OK to refresh`)) {
          setTimeout(function () {
            window.location.reload();
          }, 3000);
        }
      });

      _this.theWorkBox.register(); 

      window.addEventListener('check-sw', function () {
        _this.theWorkBox.update();
      }); 

0 ответов

Другие вопросы по тегам