0

是否有可能在不使用间隔方法的情况下检测前端新服务人员的激活(而不是安装!)?

4

1 回答 1

2

如果您花时间了解ServiceWorkerContainerServiceWorkerRegistration接口的基本概念,这非常简单。

ServiceWorkerContainer 触发一个“controllerchange”事件,可以这样监听:

navigator.serviceWorker.addEventListener(
    "controllerchange",
    (activationEvent)=>{
        var activatedSW = navigator.serviceWorker.controller;
        //do anything with the activated service worker, e.g. opening a message channel to it, etc.
    }
);
于 2017-10-26T14:12:21.923 回答