Метод обновления рабочей панели отображает "внешние" события
Я использую рабочее окно 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();
});