我正在评估一个项目,该项目最初只是一个使用React和Redux的PWA。
不过,该应用程序需要离线支持,并且需要大量的媒体资产(图像和视频)才能离线使用。
由于服务工作者的存储限制仅为50MB,这对于iOS来说是不可行的。
我曾考虑过使用一个本地应用程序包装器来处理媒体文件的存储,而该应用程序的大部分仍然是Redux/React实现。
有没有一种好的方法可以从本机应用程序向UIWebView公开此类资产?或者,对于这种情况,还有其他常见的方法吗?
首先,您应该尝试只缓存PWA所需的资产。但是,如果您想存储大文件,我建议您可以使用IndexDB API。
IndexedDB是一种低级API,用于客户端存储大量结构化数据,包括文件/Blob。此API使用索引来实现此数据的高性能搜索。虽然Web存储在存储少量数据时很有用,但在存储大量结构化数据时用处不大。IndexedDB提供了一个解决方案。
为什么选择IndexDB
当IndexedDB API上的配额超过时,错误会调用事务的onabort()函数,并将Event作为参数。
当浏览器向用户请求扩展存储大小的权限时,所有浏览器只有在用户不允许的情况下才会调用此函数,否则,继续事务。
如果你想知道其他可能的DB,我建议你通过这个链接https://www.html5rocks.com/en/tutorials/offline/quota-research/