在离线模式下使用 PWA 服务工作者 save/serve Web 服务
Using PWA service workers to save/serve web service in offline mode
我有一个 vue.js/Cordova 应用程序,其中我希望来自 Rest Web 服务的数据在离线模式下可用,我首先想到的简单解决方案是使用本地存储 API通过索引每个 w.s 响应并在离线模式下或在互联网连接速度较慢的情况下从本地存储中获取我的前端服务 return 数据。但我认为直接使用本地存储 API 做这件事非常棘手,我想也许使用 service workers 和 pwa 概念可以正确地完成任务。
现在,我的问题是:在我的用例中,service workers 可以完成这项工作吗?其次,Cordova android/iOS 应用程序中是否提供服务人员?最后,在移动设备上 运行 时的兼容性 issues/usage 风险可能是什么?
不幸的是,如果您使用 Cordova 从文件 url 或 http url 提供文件,除非从网站提供服务,否则它将无法在 Android 上工作,因为服务工作者只能在安全的环境中工作。参见 https://www.w3.org/TR/service-workers-1/#secure-context。
但是,在 iOS 上有一个插件允许您使用 service workers,即使是在没有本机支持的旧版本上也是如此。
即使 android 不缺乏支持,Service Worker 也不会出现在足够多的平台上,无法用作您应用程序的核心部分。
对于你的情况,因为你已经在使用 Vue,我建议使用 Vuex, Vue’s Application Data Store.
您还可以获得一些其他好处。
我有一个 vue.js/Cordova 应用程序,其中我希望来自 Rest Web 服务的数据在离线模式下可用,我首先想到的简单解决方案是使用本地存储 API通过索引每个 w.s 响应并在离线模式下或在互联网连接速度较慢的情况下从本地存储中获取我的前端服务 return 数据。但我认为直接使用本地存储 API 做这件事非常棘手,我想也许使用 service workers 和 pwa 概念可以正确地完成任务。 现在,我的问题是:在我的用例中,service workers 可以完成这项工作吗?其次,Cordova android/iOS 应用程序中是否提供服务人员?最后,在移动设备上 运行 时的兼容性 issues/usage 风险可能是什么?
不幸的是,如果您使用 Cordova 从文件 url 或 http url 提供文件,除非从网站提供服务,否则它将无法在 Android 上工作,因为服务工作者只能在安全的环境中工作。参见 https://www.w3.org/TR/service-workers-1/#secure-context。
但是,在 iOS 上有一个插件允许您使用 service workers,即使是在没有本机支持的旧版本上也是如此。
即使 android 不缺乏支持,Service Worker 也不会出现在足够多的平台上,无法用作您应用程序的核心部分。
对于你的情况,因为你已经在使用 Vue,我建议使用 Vuex, Vue’s Application Data Store. 您还可以获得一些其他好处。