【发布时间】:2018-09-07 11:38:46
【问题描述】:
我一直在努力在 iOS 上使用在 Android 上轻松运行的东西:让我的 PWA 在有新版本时自动更新。我完全不确定这在 iOS 上是否可行。我已经使用 vue.js 和 Quasar 来构建我的应用程序,并且一切都在 Android 上开箱即用。以下是 iOS 版本目前的(丑陋、可怕)方式:
- 我可以检查我自己的服务器的版本,并将其与存储在我的应用程序中的当前版本(在 indexedDB 中)进行比较,然后发出一个通知,指出有一个新版本。到目前为止一切顺利。
- 除了让用户手动清除 SAFARI 缓存 (!!) 之外,我无法弄清楚如何以编程方式从应用程序中清除 PWA 缓存或以其他方式强制上传。
所以在这一点上,我想我的问题是:
- 是否有人能够在 iOS(11.3 或更高版本)上获得 PWA 以在新版本可用时自动更新?
- 有没有办法从我的 PWA 中清除(Safari)应用缓存?
显然,通知用户为了更新他们必须在应用程序之外执行几个步骤才能刷新它,这是一种非常糟糕的用户体验,但似乎这就是 iOS 目前所处的位置,除非我是遗漏了什么。有没有人在任何地方完成这项工作?
【问题讨论】:
-
我认为它应该在您打开应用程序时在后台更新。然后在您关闭应用程序后,下次打开它时,您应该会看到更改。这没有发生吗?
-
是的,应该,但事实并非如此。而且我从任何地方的任何人那里都看到零证据表明这适用于 iOS。你有一个工作的例子吗? (顺便说一句,这是一个带有 Service Worker 的 PWA,所以它也应该是缓存的。)
-
不,我没有当前的 iOS 设备。只是一个旧 iPod,抱歉。
-
iOS 14 的滑动应用移除状态,对于旧版本,手机应重新启动。
标签: ios vue.js progressive-web-apps quasar-framework