Я пытался заставить мое приложение Angular работать полностью автономно.Это означает, что я хочу, чтобы все мои запросы кэшировались, включая запросы POST на IndexedDB через работника службы.
Я установил пакет @ angular / pwa для реализации автономной функциональности.Пока что приложение может загружаться, когда я не в сети, и оно также кэширует все запросы GET из приложения.Но это не кеширование POST запросов (что ожидается).
Поэтому я попытался внедрить пользовательский сервисный работник для своей работы.
Я создал 2 новых файла
sw-master.js
sw-sync.js
Внутри sw-master.js
importScripts('./ngsw-worker.js');
importScripts('./sw-sync.js');
Внутри sw-sync.js
(function () {
'use strict';
self.addEventListener('fetch', (event) => {
console.log(event.request);
});
});
Внутри app.module.ts вместо этого
ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }),
Я положил
ServiceWorkerModule.register('sw-master.js', { enabled: environment.production }),
Но console.log
внутри события sw-sync.js
-> fetch
не работает.Я предполагаю, что это потому, что в ngsw-worker.js
есть событие fetch
, которое было сгенерировано angular при компиляции.
Как я могу решить эту проблему?Заранее спасибо.