似乎angular6不支持与服务工作者进行后台同步.在角度服务中没有任何库的情况下执行此操作需要执行哪些步骤?
https://developers.google.com/web/updates/2015/12/background-sync
如何以及在何处直接在angular6应用程序中访问WorkerGlobalScope,以便可以完成后台同步:
self.addEventListener('sync', function(event) {
if (event.tag == 'myFirstSync') {
event.waitUntil(doSomeStuff());
}
});
Run Code Online (Sandbox Code Playgroud)
问题是角度CLI生成servicworker文件(ngsw-worker.js).有没有办法注入/修改 /扩展这个文件?是的,我可以手动编辑文件ngsw-worker.js或使用其他花哨技巧.有正式的方法吗?
是否可以注册一个用 TypeScript 编写的 ServiceWorker @angular/service-worker?
当前在app.module.ts 中注册 service worker 如下所示:
ServiceWorkerModule.register('ngsw-worker.js', {
enabled: environment.production
})
Run Code Online (Sandbox Code Playgroud)
是否有可能以某种方式注册一个ngsw-worker.ts?
至少这对于 Angular 中的网络工作者来说是可能的:
const worker = new Worker('../my-worker.worker', {
type: 'module'
});
Run Code Online (Sandbox Code Playgroud)
我的worker.worker.ts
/// <reference lib="webworker" />
import {someMethod} from './some-method';
addEventListener('message', ({ data }) => {
const response = `worker response to ${data}`;
postMessage(response);
someMethod();
});
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏 - 谢谢