跳过内容

@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 缓存以抵御正常存储压力:

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

缓存验证模型

缓存验证模型

缓存可以通过以下方式进行检查:

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

存储模型

存储模型

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

缓存位于应用程序沙盒内,作为公共用户媒体不可见。 当应用程序卸载时,用户清除应用程序数据或您的应用程序调用时,缓存将被删除。 clear()remove().

Keep going from @capgo/capacitor-asset-cache

Section titled “从 @capgo/capacitor-asset-cache 开始”

如果您正在使用 @capgo/capacitor-asset-cache 来规划持久的媒体加载,连接它与 Getting Started 获取实现细节 @capgo/capacitor-downloader 获取明确的后台下载 @capgo/capacitor-file 获取一般的本地文件访问,和 使用 @capgo/capacitor-asset-cache 获取教程