IOS和离线存储上的PWA

时间:2018-07-30 11:57:01

标签: ios progressive-web-apps

我们希望开发一个“应用程序”,该应用程序能够为评估人员记录损坏的汽车的详细信息。这个想法是,少数评估者会拥有公司的iPad。然后,当汽车损坏并返回车厂时,他们可以访问拍照,输入一些详细信息,然后稍后将其上传到主系统中。一些车场可能在没有Internet覆盖的区域,因此需要离线功能。

我们最初的想法是开发一个IOS App,以安装在少量公司的iPad上。该应用程序可以访问相机拍照,然后在设备可以访问互联网时将照片上传到主系统。但是,对于客户而言,此解决方案可能会过于昂贵(相对于开发成本)。

我已经阅读了有关PWA和缓存数据的信息,但是该缓存似乎是针对脱机读取访问的。

如果我们在iPad上安装了chrome,然后又安装了PWA,则可能是

  1. PWA是否可以存储高达128GB * 6%= 7.68GB的图片?
  2. 如果使用文件系统API存储,则(只要有足够的存储空间 系统空间)数据将被保留(我的理解是没有时间限制)?或者其他类型的存储更合适。
  3. 离线数据显然很重要(法庭上可能需要),因此在将图像上传到主系统之前是否还有其他有关持久性和稳定性的问题?

请注意,我们宁愿使用iPad(因为客户更喜欢iPad),但我们可以考虑使用其他平台。

在这个阶段,我真的是想找出PWA访问离线存储在平台上是否可行,实用和稳定?

2 个答案:

答案 0 :(得分:2)

首先,iOS限制了第三方Web浏览器(或任何显示网页的应用)使用其自己的引擎-在iPad上安装Chrome不会访问iOS / Safari不支持的任何Web API。 / p>

特别是:

  • 即使您使用的是Chrome,文件系统API在iOS上也不可用
  • 每个网站的缓存API的存储限制为50MB
  • IndexedDB每个网站的存储限制为500MB或设备可用空间的一半(以较小者为准)
  • 如果几个星期不使用PWA及其缓存的数据,则会自动从设备中擦除
  • 即使您使用的是Chrome或Firefox,iOS上也不支持用于要求持久数据的“ navigator.storage” API。

答案 1 :(得分:0)

我首先想到的是,如果您仅要支持iPad,并且需要无限的离线存储,那么最好使用本机应用程序。请记住,对于这种应用程序,您将需要Apple Enterprise Program,它比常规的Developer Program昂贵。

但是,如果您确实想使用PWA,则最好的本地存储选择就是IndexedDB。根据{{​​3}}的说法,根据skybondsor的评论,浏览器确实确实会限制并可能在一段时间后驱逐数据。

但是阅读您的问题,我感觉到您实际上并不需要持久的本地存储,而是一种确保您的数据最终将最终存储在服务器上的方法。您可以利用ADM webdocs来完成此任务。这样,您的应用程序就可以将上传延迟到有稳定的Internet连接时。