【问题标题】:iOS UIWebView - caching assets in native apapiOS UIWebView - 在本机应用程序中缓存资产
【发布时间】:2019-01-15 18:23:56
【问题描述】:

我正在评估一个项目,该项目最初的目标是使用 React 和 Redux 的 PWA。

但该应用程序需要离线支持,并且需要大量的媒体资产(图像和视频)才能离线使用。

由于 service worker 的存储限制只有 50MB,这对于 iOS 来说是不可行的。

我曾想过使用原生应用程序包装器来处理媒体文件的存储,而大多数应用程序仍然是 Redux/React 实现。

有没有一种好方法可以将这些资产从本机应用程序暴露给 UIWebView?或者对于这种情况还有其他常见的方法吗?

【问题讨论】:

    标签: ios uiwebview progressive-web-apps offline-caching


    【解决方案1】:

    首先,您应该尝试仅缓存 PWA 所需的资产。但是,如果您想存储大文件,我建议您可以使用 IndexDB API。

    IndexedDB 是一种低级 API,用于在客户端存储大量结构化数据,包括文件/blob。此 API 使用索引来启用对这些数据的高性能搜索。虽然 Web 存储对于存储少量数据很有用,但它对于存储大量结构化数据的用处不大。 IndexedDB 提供了一个解决方案。

    为什么选择 IndexDB?

    当 IndexedDB API 上的配额超过时,错误会调用事务的 onabort() 函数,并将 Event 作为参数。

    当浏览器向用户请求扩展存储大小的权限时,所有浏览器只有在用户不允许时才调用该函数,否则继续事务。

    如果您想了解其他可能的数据库,我建议您通过此链接 https://www.html5rocks.com/en/tutorials/offline/quota-research/

    【讨论】:

      猜你喜欢
      • 2013-06-22
      • 1970-01-01
      • 2016-10-14
      • 2014-05-14
      • 2020-08-19
      • 2018-12-31
      • 2011-12-28
      • 2018-01-20
      • 2012-02-21
      相关资源
      最近更新 更多