首页 > 解决方案 > Angular PWA ngsw-config updateMode——什么时候更新用户的 PWA?

问题描述

我们最近使用 Ionic + Angular PWA 部署了一个生产应用程序。不幸的是,我们没有为资产 *.js 和 *.html 设置更新模式。我们已经部署了新版本的 ngsw-config 和 ngsw.json,其中包括更新资产的方法。

如果用户已经在他们的手机上安装了我们的应用程序(即主屏幕上的快捷方式)-> 他们的 ngsw-config 或 ngsw.json 需要多长时间才能更新?

会自动更新吗?

标签: angularionic-framework

解决方案


根据https://angular.io/guide/service-worker-devops#update-checks

每次用户打开或刷新应用程序时,Angular Service Worker 都会通过查找 ngsw.json 清单的更新来检查应用程序的更新。如果找到更新,它会自动下载和缓存,并在下次加载应用程序时提供。

这意味着下一次*您的用户打开应用程序时,他应该获得更新的内容/应用程序,因为ngsw.json服务器中有一个新版本可用。

旁注:我自己没有尝试过。我唯一不确定的是,ngsw.json即使您在文件Cache-Control: max-age...上明确设置了标头,服务人员是否总是获取新ngsw.json文件。我认为它会因为 Angular 拥有强大的应用程序完整性保证。但是,我建议您事先尝试一下。

*(注意“下次”)如果用户已经“添加到主屏幕”之前的版本,当他再次打开应用程序时,即使现在有新版本可用,浏览器仍会呈现旧应用程序。ngsw.json 这是因为 Service Worker在此期间检查更新并在后台下载更新的版本。如果用户第二次关闭并打开应用程序,那就是实际呈现新版本的时间。我在某处(但我忘记了在哪里)读到“新版本可用,您想刷新”消息可以在新版本可用后用户第一次打开应用程序时显示,但这超出了范围这个问题,我就不深究了。


推荐阅读