Трансляция сообщений от обслуживающего персонала во время предварительного кэширования
Я пытался использовать Workbox Broadcast Update вместе с Workbox Precaching, чтобы отображать отзывы пользователей о ходе установки.
Это после, возможно, излишне обнадеживающей публикации здесь. Следите за прогрессом при предварительном кэшировании ресурсов с помощью Workbox.
Я использую плагин workbox-webpack с InjectManifest для компиляции и окно рабочего окна в окне (версия 5.1.2)
В моем сервисе:
import {BroadcastUpdatePlugin} from 'workbox-broadcast-update';
import {precacheAndRoute, addPlugins} from 'workbox-precaching';
addPlugins([new BroadcastUpdatePlugin()])
precacheAndRoute(self.__WB_MANIFEST);
В моем коде окна я пробовал несколько вариантов этого
const wb = new Workbox("/sw.js");
navigator.serviceWorker.onmessage = (e) => {
console.log(`SUCCESS!!!`, e);
}
wb.addEventListener('message', (event) => {
console.log(`SUCCESS`, event);
});
wb.register();
Я не уверен, что это когда-либо сработает, потому что сообщения передаются в режиме предварительного кэширования, а обслуживающий персонал не контролирует. Я действительно вижу много журналов разработчиков Workbox (когда они скомпилированы в процессе разработки), но они всегда появляются в спешке при "контроле", а не во время установки, что мне нужно.
Я зря трачу время?
Альтернативой является не предварительное кеширование, а пост-кеширование, но мне пришлось бы все это подключить самостоятельно, а не просто однострочно precacheAndRoute(self.__WB_MANIFEST);
Мне удалось получить мой собственный плагин, отвечающий на запросы и события кеширования во время предварительного кэширования с помощью этого подхода, используя addPlugins, как я пытался сначала, похоже, не использовался в предварительном кешировании. Все еще не решено, как сообщить о событиях обратно в окно из плагина serviceworker, хотя