我在现有的基于Angular 5的网络应用程序中添加了PWA和服务工作者。在第一次发布时,一切看起来都很好。但是,当我尝试发布更新时,会发生一些奇怪的事情。
在使用Chrome的PC上,我没有问题。每次发布后,我都会收到警报,要求我更新新版本,这很棒。
但是,iOS上缺少此警报,这可能没问题,因为iOS不支持自动更新,但据我所知。如果我在iOS上使用Chrome,我可以在手动刷新后获得新版本(有时需要刷新一些内容)。但是,Safari浏览器通常不会显示新版本。如果我不断刷新页面,最终会出现新版本,但是在我关闭并重新打开它之后会再次出现。在我玩的时候,我到达新版本的唯一方法是先手动清除Safari缓存。这对普通用户来说是不可接受的。
我知道iOS对PWA的支持有限,但这是我们在iOS上获得的最多的东西吗?如果没有自动更新,iOS用户如何知道新版本并更新它?
我发现并发布了答案here,但重新迭代:
经过数周和数周的搜索,我终于找到了一个解决方案:
window.location.reload(true)
然后将新版本字符串存储在localstorage中瞧!我的应用程序已更新!我无法相信它归结为这么简单,我无法在任何地方找到解决方案。希望这可以帮助。