1

SW-Precache 演示代码中,当“将清除旧内容并将新内容添加到缓存中”时,有一行记录到控制台。它还在评论中说,这是让用户知道有新内容可用的好时机。

但是,该脚本位于我的index.html文件(或我的main.ts文件;我已尝试两种方式)中的服务工作者注册块中。但是,我希望在 angular component 中收到有关此更新的通知,因此我可以向用户显示一个很好的通知。

这样做的正确方法是什么?我在组件中创建了一个 observablemain.ts并将其导入,但这会导致循环引用错误。

4

1 回答 1

0

您可以使用@angular/service-worker与 Angular CLI 很好地集成的官方包,而不是自己实现它。它提供了一个Observablewhich 在更新版本可用时发出值。然后您可以通知用户,例如显示一个小吃店。

文档摘录:

constructor(updates: SwUpdate) {
  updates.available.subscribe(event => {
    console.log('current version is', event.current);
    console.log('available version is', event.available);
  });
}
于 2017-08-22T19:40:03.050 回答