跳过内容

@capgo/capacitor-资产缓存

在应用所有持久存储中缓存重型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. 本地文件准备好后,元素才会接收一个本地webview URL。
  4. 注意

在以下情况下使用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最后修改时间验证器时出现在。

存储模型

存储模型

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

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

继续从@capgo/capacitor-资产缓存

从@capgo/capacitor-asset-cache继续

继续从@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-asset-cache 继续从@capgo/capacitor-asset-cache 如果您正在使用 @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-asset-cache 为了实现详细信息 @capgo/capacitor-下载器 为了明确的后台下载 @capgo/capacitor-文件 用于一般的本地文件访问, 使用@capgo/capacitor-资产缓存 查看教程