我正在阅读this关于PWA的脱机存储的指南,其中描述了两个存储API,即Cache API和IndexedDB,但是似乎这两个存储选项都不是真正持久的。缓存API在设计上是临时的,当用户清除其浏览器缓存时,可以擦除IndexedDB数据。
那么,是否有可能在PWA中拥有真正的持久存储?我想做的是这样的:
有什么办法可以做到?也许我不知道的API?我只需要一个很小的唯一代码,因为该PWA并非旨在让用户使用Cookie登录。
答案 0 :(得分:0)
否
用户可以删除PWA(如果已安装在Android上),并清除其PWA中浏览器对所有内容的缓存。
然后,如果他们再次访问,则需要为他们生成一个新的ID。
但是,如果您没有与唯一用户绑定的登录后端,则不会知道其先前的ID。
答案 1 :(得分:0)
正如Mathias所述,仅PWA不可能实现您的目标,因为用户可以擦除所有先前生成的数据。
因此,长话短说,您必须使用其他解决方案来确保“真正的持久性存储”。
例如在个人PWA项目中,我使用 Cloud Firestore 。它还提供了一个非常慷慨的免费层,您甚至可以使用它进行离线持久化,从而为您的应用程序授予完整的CRUD操作(即使在离线状态下也是如此)。
服务工作者通过Cache API,仅允许缓存GET Requests
,而不能缓存POST
。
我在SO上为此写了another answer。并且here可以找到官方文档。