我的PWA网络应用程序在Safari上发布新版本后仍然显示旧版本(但在Chrome上工作正常)?

问题描述 投票:6回答:1

我在现有的基于Angular 5的网络应用程序中添加了PWA和服务工作者。在第一次发布时,一切看起来都很好。但是,当我尝试发布更新时,会发生一些奇怪的事情。

在使用Chrome的PC上,我没有问题。每次发布后,我都会收到警报,要求我更新新版本,这很棒。

但是,iOS上缺少此警报,这可能没问题,因为iOS不支持自动更新,但据我所知。如果我在iOS上使用Chrome,我可以在手动刷新后获得新版本(有时需要刷新一些内容)。但是,Safari浏览器通常不会显示新版本。如果我不断刷新页面,最终会出现新版本,但是在我关闭并重新打开它之后会再次出现。在我玩的时候,我到达新版本的唯一方法是先手动清除Safari缓存。这对普通用户来说是不可接受的。

我知道iOS对PWA的支持有限,但这是我们在iOS上获得的最多的东西吗?如果没有自动更新,iOS用户如何知道新版本并更新它?

ios safari service-worker pwa
1个回答
5
投票

我发现并发布了答案here,但重新迭代:

经过数周和数周的搜索,我终于找到了一个解决方案:

  1. 我在服务器上添加了对versionstring的检查,并将其返回给应用程序。
  2. 我在localtstorage(IndexedDB)中查找它,如果我找不到它,我会添加它。如果我找到它,我会比较版本,如果服务器上有更新版本,我会抛出一个对话框。
  3. 关闭此对话框(我的按钮标记为“更新”)运行window.location.reload(true)然后将新版本字符串存储在localstorage中

瞧!我的应用程序已更新!我无法相信它归结为这么简单,我无法在任何地方找到解决方案。希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.