10

似乎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());
  }
});

问题是角度 CLI 生成了服务工作者文件(ngsw-worker.js)。有没有办法注入/修改 /扩展这个文件?是的,我可以手动编辑文件ngsw-worker.js或使用其他花哨的技巧。有没有官方的方法可以做到这一点?

4

1 回答 1

7

是的,您可以使用自定义脚本来扩展 Angular 服务工作者的功能。

只需按照以下步骤操作:

  1. 使用您的自定义脚本创建一个 js 文件,比如说sw-custom.js 在项目的 src 目录下。
  2. importScripts('./ngsw-worker.js')在文件顶部添加“ ” sw-custom.js
  3. sw-custom.js文件添加到angular.json脚本部分下的文件。
  4. 现在在 app 模块中注册您的sw-custom.js文件,而不是

ngsw-worker.js

现在就是这样,您可以根据需要在此处编写脚本。

也许这不是正确的方法,但它有效。

这是相同的博客

于 2019-01-02T11:55:39.397 回答