还有什么方法可以在iOS上自动更新(或者只清除缓存)PWA?

我一直在iOS上苦苦挣扎,在Android上轻松运行:在有新版本时让我的PWA自动更新。 我完全不确定这在iOS上是否可行。 我已经使用vue.js和Quasar来构建我的应用程序,所有内容都在Android上开箱即用。 这是iOS版本目前的(丑陋,可怕)方式:

  1. 我可以检查我自己的服务器的版本,并将其与我的应用程序中存储的当前版本(在indexedDB中)进行比较,并发出通知,告知有新版本。 到现在为止还挺好。
  2. 除了让用户手动清除SAFARI CACHE(!!)之外,我无法弄清楚如何以编程方式从应用程序内清除PWA缓存或以其他方式强制上传。

所以在这一点上我想我的问题是:

  1. 有没有人能够在iOS(11.3或更高版本)上获得PWA以在新版本可用时自动更新?
  2. 有没有办法从我的PWA中清除(safari)应用缓存?

显然,用户体验非常糟糕,通知用户为了更新,他们必须在应用程序之外执行几个步骤才能刷新它,但似乎这就是iOS现在的位置,除非我遗漏了一些东西。 有人在哪里做过这项工作?

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

  1. 我在服务器上添加了对versionstring的检查,并将其返回到应用程序,如上所述。

  2. 我在localtstorage(IndexedDB)中查找它,如果我找不到它,我会添加它。 如果我找到它,我会比较版本,如果服务器上有更新版本,我会抛出一个对话框。

  3. 关闭此对话框(我的按钮标记为“update”)运行window.location.reload(true) ,然后将新版本字符串存储在localstorage中

瞧! 我的应用已更新! 我无法相信它归结为这么简单的事情,我无法在任何地方找到解决方案。 希望这有助于其他人!