首页 > 解决方案 > Safari PWA 的 self.skipWaiting()

问题描述

使用 chrome 浏览器,可以用skipWaiting新的服务人员替换旧的服务人员。

我了解 Safari(https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerGlobalScope/skipWaiting)不支持此功能。那么替代方案是什么?

这里的工作流程是做什么skipWaiting的呢?

这就是我对 chrome 的看法:

self.addEventListener('install', function(event) {
  self.skipWaiting();
}); 

标签: safariprogressive-web-apps

解决方案


我不认为浏览器支持信息是准确的,请参见此处,它从 Safari 11.1 中说可以。

在这方面,我从未注意到我的 PWA 与 Chrome 有任何区别。我显示了一个重新加载按钮,单击该按钮时,会向 SW 发送一条消息,并在收到时:

addEventListener('message', e => {
  if (e.data && e.data.type === 'SKIP_WAITING') skipWaiting();
});

推荐阅读