跳过内容

@capgo/capacitor-asset-cache

在应用所有持久存储中缓存重度CDN媒体,并将图片或视频绑定到本地webview URL。

仅本地显示源

src, resolve, 和 bind 仅在本地文件存在后返回源。您的img或video标签接收到一个本地webview URL。

本地持久存储

缓存资产存储在应用所有持久存储中,而不是平台缓存文件夹,系统可能在压力下清除。

受保护的CDN支持

将头信息传递给原生fetch以获取签名或认证资产,同时web元素仍然只加载本地文件。

框架友好的绑定

将原生缓存解析绑定到普通 HTML、React refs、Vue refs 或任何可以分配 img 或 video src 的框架。

@capgo/capacitor-asset-cache 缓存大图像、视频和其他 CDN 资产到应用所有的持久存储,然后为 web 应用提供一个本地源 URL 进行显示。

正常路径是:

  1. 配置一个 CDN 基础 URL 一次,或者传递一个绝对 URL 每个资产。
  2. 调用 AssetCache.bind(element, path)AssetCache.src(path).
  3. 插件原生地获取或重新验证远程资产。
  4. 元素仅在本地文件准备好后才接收到一个本地 webview URL。

在您的应用程序显示重大的远程媒体时使用Asset Cache:这些媒体应能在正常存储压力下存活:

  • 从CDN服务器获取的导航或营销视频
  • 英雄图像、画廊或图像序列在会话之间重复使用
  • 需要请求头的受保护媒体
  • 离线耐用的屏幕,其中一个之前获取的本地资产足够
  • Capacitor 应用程序 <img><video> 不应直接获取保护的 URL
  • configure(options) 设置默认 CDN 和重新验证行为。
  • bind(element, path, options?) 当本地文件准备好时更新一个图片或视频元素。
  • src(path, options?) 为框架状态返回一个本地源字符串。
  • resolve(path, options?) 返回本地源加上缓存元数据。
  • get(options) 将远程 URL 解析为持久的本地文件元数据。
  • remove(options) 通过关键或 URL 删除一个缓存的资产。
  • clear() 删除由插件管理的所有缓存资产。
  • list() 返回仍然存在于磁盘上的缓存资产。
  • getCacheSize() 返回总缓存字节。
  • getPluginVersion() 返回本地实现版本标记。

重新验证模型

重新验证模型

可以通过不同方式检查缓存,针对每个资产或使用默认值:

策略行为
never当本地文件存在时使用本地文件。
ttl重新下载后 maxAgeSeconds.
always在每次调用时重新验证并发送已知验证器。
etag当本地存在时使用已知HTTP ETag验证器。
last-modified当本地存在时使用已知HTTP Last-Modified验证器。

存储模型

存储模型部分

在 iOS 上,文件存储在 Application Support 下,缓存根目录排除在 iCloud 备份之外。在 Android 上,文件存储在应用内部文件目录下。

缓存隐藏在应用沙盒内,不可见于公共用户媒体。它在应用卸载时、用户清除应用数据时或您的应用调用时被删除。 clear()remove().

从 @capgo/capacitor-asset-cache 继续

部分:从 @capgo/capacitor-asset-cache 继续

如果您正在使用 @capgo/capacitor-asset-cache 来规划持久媒体加载,请将其与 开始 进行实施详细信息 @capgo/capacitor-下载器 用于显式背景下载 @capgo/capacitor-文件 用于一般本地文件访问, 使用 @capgo/capacitor-资产缓存 进行教程。