如何知道服务工作者是否在gatsby-plugin-offline中更新了

时间:2018-01-09 15:28:45

标签: javascript reactjs service-worker gatsby

我已经安装了gatsby-plugin-offline,它工作正常,但我想收听sw更新事件,以便我可以通知用户新版本的应用程序可用。

在此之前,我使用offline-plugin我推测是behinde gatsby的插件?他们有文档解释如何在这里实现我想要的东西:https://github.com/NekR/offline-plugin/blob/master/docs/updates.md但我无法弄清楚如何通过gatsby获得这些事件,任何建议人员?

2 个答案:

答案 0 :(得分:1)

目前gatsby-plugin-offlinesw-precache的包装器,除了配置选项中显示的缓存设置之外,它不提供任何直接挂钩。通过sw-precache看起来有很多方法,所以在gatsby问题页面上处理PR或功能请求可能是值得的。

答案 1 :(得分:1)

我一直在寻找完全相同的答案。

有一个事件可以挂接到一个名为“ onServiceWorkerUpdateFound”的事件。 只需创建(如果尚未创建)gatsby-browser.js文件,然后执行类似的操作即可。

gatsby-browser.js

exports.onServiceWorkerUpdateFound = () => {
    // do something
};

我创建了一个<div>,其中显示了“可用新版本”消息,并带有一个onClick事件,该事件重新加载了页面(然后将激活新的Service Worker)。

更多信息:Gatsby Browser APIs