我们正在使用工作箱。如果用户打开已安装的PWA并且有可用的新版本,我们将以编程方式刷新页面。
如果应用在用户设备的后台运行,这样做会带来更好的用户体验。
在Google和SO上我没有找到任何引用。
有没有这样的例子?如果我要制造一个,有人会觉得有用吗?
我感到惊讶的是,这不是事实上的方法,但是也许我在这里遗漏了一些东西……
我正在考虑以下方法:
服务工作者正在从服务器轮询以检查是否有新版本可用(或通过WebSocket连接)
如果找到新版本,服务人员将检查该应用程序是否处于活动状态/在前台。如果是,请通知用户新版本,并提供更新更新。如果没有,请以编程方式进行重新加载,并在加载时恢复应用程序的状态。
如果有人知道这样做的更好方法,我将不胜感激。
答案 0 :(得分:2)
紧随Jeff's answer on another SO thread之后,Push API似乎是解决之道。
如果有需要,我可能会在完成后将代码发布在这里。
注意:ATM Safari and android webview不支持Push api。
答案 1 :(得分:0)
这是不可能的。您无法在Service Worker中实施在后台进行的更新检查。原因:防止滥用并节省电池。
一些注意事项:
最后一点意味着您无法使服务器与应用程序的软件联系,并且让服务器默默地执行某些操作,而无需向用户显示通知。