【发布时间】:2020-06-11 15:24:56
【问题描述】:
我希望我的 PWA 在运行时定期更新自身,而不是等待用户刷新页面(例如,在 iOS 12 上,实际上很难触发 PWA 的页面重新加载)。
我知道有 ServiceWorkerRegistration.update() 方法,但 Safari 不支持。
那么,是否有任何变通方法可以让我的 ServiceWorker 无需在 iOS 上重新加载页面即可自行更新?
附加信息:
目前,我会定期轮询 version.json 文件,在该文件中放置当前应用程序的版本,进行比较,然后强制重新加载页面。它工作正常,但需要重新加载两次页面才能获取新版本(此 + 在激活事件之后加载新应用的资产)。
这是我目前的解决方案,如果您需要更多上下文:https://github.com/dimaip/calendar/blob/master/app/serviceWorker.js#L31
【问题讨论】:
-
会依靠
location.reload()工作吗? -
@KenKinder 嘿,是的,如果我对这个问题有一个明确的否定,这基本上就是我的想法。