@capgo/capacitor-asset-cache

中文文档
8.1.8发布于 2026/10/15MPL-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 4万

透明地本地缓存大型图像和视频的电容插件.

中文使用文档
文档目录27 节
  1. *免费开始*
  2. 主要特点
  3. 为什么是资产缓存?
  4. 文档
  5. 兼容性
  6. 安装
  7. 使用量
  8. 反应
  9. 阴道
  10. 直接来源
  11. 受保护资产
  12. 检查决议
  13. 高级缓存控制
  14. 平台注释
  15. API 密码
  16. 配置(...)
  17. 分辨率(...)
  18. src (...) (中文(简体) )
  19. 绑定(...)
  20. 获取(...)
  21. 删除(...)
  22. 清除( c)
  23. 列表( )
  24. 获取缓存Size ()
  25. 获取 PluginVersion ()
  26. 接口
  27. 类型异名

@ capgo/ 电容- 资产- cache

缓存设备上的大型图像,视频和其他CDN文件,以便立即加载并下线工作. 一个呼叫将远程 URL 变成您 WebView 可以显示的本地文件 .

Capgo - Build Capacitor apps with AI, ship updates instantly

队长:在几分钟内将修正推给您的 Capacitor 用户,在没有Mac的情况下构建已签名的iOS和Android apps,并在一击中回滚.

*免费开始*

14天无限自由审判. 不需要信用卡

🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用 @capgo/capacitor-asset-cache 在您的电容应用程序中: npx skills add Cap-go/capgo-skills。然后问你的经纪人: 添加@capgo/电容-asset-cache到我的电容软件上 代理设置指南 • 妇女 主机磁共振

@capgo/capacitor-asset-cache for Capacitor apps

主要特点

  • 本地文件数字 : get() 下载一次资产并返回持久本地文件.
  • 显示就绪数字 : resolve() 财务报告和审定财务报表 src() 将 CDN 路径或 URL 转换为您可以设置的值 src。 。 。 .
  • 调整数字 : never, (中文(简体) ), ttl (与 maxAgeSeconds, (中文(简体) ), always, (中文(简体) ), etag 或者说 last-modified 策略,加上自定义请求头.
  • 缓存管理数字 : list(), (中文(简体) ), getCacheSize(), (中文(简体) ), remove() 财务报告和审定财务报表 clear()。 。 。 .
  • 平台: iOS,Android和Web. 互联网档案馆的存檔,存档日期2013-12-02. 网页执行在浏览器中保留了相同的API.

为什么是资产缓存?

@capgo/capacitor-asset-cache 让应用程序代码请求媒体源并直接绑定到一个 <img>, (中文(简体) ), <video>,反应组件,Vue模板,或任何其他网络UI.

  • 通过一个 CDN 路径像 videos/intro.mp4 并获取本地显示准备的 URL .
  • 使用持续应用存储:iOS应用程序支持和Android内部文件.
  • src(...) 财务报告和审定财务报表 resolve(...) 只在本地文件存在后解析;如果插件不能创建本地文件,则呼叫拒绝.
  • bind(...) 更新图像或视频元素 loading 改为 ready 当本地文件可用时.
  • 支持缓存唯一, TTL, ETag, 最后修改, 并且总是重新验证模式 .
  • 保持较低级别 get, (中文(简体) ), list, (中文(简体) ), remove,以及 clear 高级缓存管理助手.

缓存在应用程序未安装时被去除,但系统在压力下可能冲走的缓存目录中并不存储.

文档

这里有最完整的医生: https://capgo.app/docs/plugins/asset-cache/ 页面存档备份,存于互联网档案馆

兼容性

插件版本电容兼容性维护
联合国联合国对
页:1页:1应要求

安装

npm install @capgo/capacitor-asset-cache
npx cap sync

使用量

配置CDN一次,然后将媒体元素绑定在CDN路径上. 元素只接收本地抓取完成后的本地网页视图 URL .

import { AssetCache } from '@capgo/capacitor-asset-cache';

AssetCache.configure({
  cdnUrl: 'https://cdn.example.com/assets/',
  revalidate: {
    strategy: 'ttl',
    maxAgeSeconds: 86400,
  },
});

const video = document.querySelector('video');
if (video) {
  AssetCache.bind(video, 'videos/intro.mp4');
}
video[data-asset-cache-state='loading'],
img[data-asset-cache-state='loading'] {
  opacity: 0.4;
}

video[data-asset-cache-state='ready'],
img[data-asset-cache-state='ready'] {
  opacity: 1;
}

反应

import { useEffect, useRef } from 'react';
import { AssetCache } from '@capgo/capacitor-asset-cache';

AssetCache.configure({ cdnUrl: 'https://cdn.example.com/assets/' });

export function HeroImage() {
  const imageRef = useRef<HTMLImageElement>(null);

  useEffect(() => {
    if (!imageRef.current) return;

    const binding = AssetCache.bind(imageRef.current, 'hero.jpg');
    return () => binding.cancel();
  }, []);

  return <img ref={imageRef} alt="" />;
}

阴道

<script setup lang="ts">
import { onMounted, onUnmounted, ref } from 'vue';
import { AssetCache, type AssetCacheBinding } from '@capgo/capacitor-asset-cache';

const image = ref<HTMLImageElement | null>(null);
let binding: AssetCacheBinding | undefined;

onMounted(() => {
  if (image.value) {
    binding = AssetCache.bind(image.value, 'hero.jpg', {
      cdnUrl: 'https://cdn.example.com/assets/',
    });
  }
});

onUnmounted(() => binding?.cancel());
</script>

<template>
  <img ref="image" alt="" />
</template>

直接来源

使用 src(...) 当框架已经管理装入状态时。 它只有在本地文件准备好后才解决.

const src = await AssetCache.src('images/hero.jpg');

受保护资产

传头到本地取来。 网络元素只接收插件返回的本地文件 URL.

const src = await AssetCache.src('private/videos/intro.mp4', {
  cdnUrl: 'https://cdn.example.com/assets/',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

检查决议

使用 resolve(...) 当您想要本地文件分辨率的元数据时.

const source = await AssetCache.resolve('images/hero.jpg');

console.log(source.src, source.fromCache, source.status);

高级缓存控制

使用 get(...) 仅当您需要原始本地文件元数据时直接 .

const asset = await AssetCache.get({
  url: 'https://example.com/videos/intro.mp4',
  key: 'intro.mp4',
  revalidate: { strategy: 'etag' },
});

平台注释

  • iOS存储应用程序支持下的文件,并将缓存根从iCloud备份中排除.
  • Android在应用程序内部文件目录下存储文件.
  • Web使用浏览器Cache API和localStorage元数据作为开发倒计时.

API 密码

用于大型Capacitor图像,视频等媒体的持续资产缓存.

配置(...)

configure(options: AssetCacheConfigOptions) => void

设置未来的默认值 src(...), (中文(简体) ), resolve(...),以及 bind(...) 打电话.

参数类型
optionsAssetCacheConfigOptions

分辨率(...)

resolve(path: AssetCacheSourceInput, options?: AssetCacheSourceOptions | undefined) => Promise<ResolvedAssetSource>

将 CDN 路径或远程 URL 解析为本地显示已准备好的源 URL .

参数类型
pathAssetCacheSourceInput
optionsAssetCacheSourceOptions

回返情况: Promise<ResolvedAssetSource>


src (...) (中文(简体) )

src(path: AssetCacheSourceInput, options?: AssetCacheSourceOptions | undefined) => Promise<string>

将 CDN 路径或远程 URL 解析为本地字符串 img.src 或者说 video.src。 。 。 .

参数类型
pathAssetCacheSourceInput
optionsAssetCacheSourceOptions

回返情况: Promise<string>


绑定(...)

bind(element: AssetCacheBindableElement, path: AssetCacheSourceInput, options?: AssetCacheBindOptions | undefined) => AssetCacheBinding

将图像或视频元素绑入本地资产, 并随时更新 .

参数类型
elementany
pathAssetCacheSourceInput
optionsAssetCacheBindOptions

回返情况: AssetCacheBinding


获取(...)

get(options: GetAssetOptions) => Promise<CachedAsset>

将资产 URL 解析为本地持久文件 .

参数类型
optionsGetAssetOptions

回返情况: Promise<CachedAsset>


删除(...)

remove(options: AssetCacheKeyOptions) => Promise<RemoveAssetResult>

按密钥或 URL 删除一个缓存资产 .

参数类型
optionsAssetCacheKeyOptions

回返情况: Promise<RemoveAssetResult>


清除( c)

clear() => Promise<ClearCacheResult>

删除此插件管理的所有缓存资产 .

回返情况: Promise<ClearCacheResult>


列表( )

list() => Promise<AssetCacheListResult>

列出磁盘上仍然存在的缓存资产 .

回返情况: Promise<AssetCacheListResult>


获取缓存Size ()

getCacheSize() => Promise<AssetCacheSizeResult>

返回全部缓存资产字节 .

回返情况: Promise<AssetCacheSizeResult>


获取 PluginVersion ()

getPluginVersion() => Promise<PluginVersionResult>

返回平台执行版本标记 .

回返情况: Promise<PluginVersionResult>


接口

资产缓存配置选项

使用的共享默认值 AssetCache.src(...) 财务报告和审定财务报表 AssetCache.resolve(...)。 。 。 .

Prop类型说明
cdnUrlstring基础 CDN URL 使用时 path 是相对的.
revalidateAssetCacheRevalidateOptions已解决资产的默认重新验证行为 .

资产分类修订选项

缓存资产的重现选项.

Prop类型说明默认
strategyAssetCacheRevalidateStrategynever 返回当前本地文件. ttl 后重新下载 maxAgeSeconds。 。 。 . always 重新验证每个呼叫,并发送已知的验证器. etag 财务报告和审定财务报表 last-modified 在当前时使用匹配的 HTTP 验证器.'never'
maxAgeSecondsnumber新鲜度窗口( 秒) ttl 战略.

解析自定义源

返回结果 AssetCache.resolve(...)。 。 。 .

Prop类型说明
srcstring本地 URL 准备指定到 HTMLImageElement.src, (中文(简体) ), HTMLVideoElement.src,或框架约束.
pathstring原道由召相传.
remoteUrlstring本地获取所用的完全解析的远程 URL .
keystring已知时使用的稳定缓存密钥 .
localtrue总是对成功的正确 resolve(...) 打电话.
fromCacheboolean在发出这个呼吁之前, 本地副本就已经存在了 .
status'hit' | 'downloaded' | 'notModified'本地源解析结果.
assetCachedAsset本地文件的本地缓存资产有效载荷 .

缓存

存储在应用软件持续存储中的缓存资产.

Prop类型说明
keystring插件所用的稳定缓存密钥 .
urlstring原始远程 URL .
pathstring绝对本地文件系统路径 .
uristring能够传递到的文件 URI Capacitor.convertFileSrc。 。 。 .
mimeTypestringHTTP响应中最有名的MIME类型.
etagstring最后已知的 HTTP ETag 验证器 .
lastModifiedstring最后已知的 HTTP 最后修改验证器 .
sizenumber以字节表示的文件大小 .
updatedAtnumber最后一次成功下载时以毫秒为单位的 Unix timetamp.
checkedAtnumber上次缓存检查时以毫秒为单位解开正时戳 .
fromCacheboolean当返回的资产来自当地的持久储存时,情况确实如此.
status'hit' | 'downloaded' | 'notModified'缓存查询结果 .

解析自定义源选项

输入 AssetCache.src(...) 财务报告和审定财务报表 AssetCache.resolve(...)。 。 。 .

Prop类型说明
pathstringCDN - 图像、视频或其他媒体资产的相接路径或绝对远程 URL.

资产缓存源选项

使用的每个资产选项 AssetCache.src(...) 财务报告和审定财务报表 AssetCache.resolve(...)。 。 。 .

Prop类型说明
keystring稳定缓存密钥 。 当 URL 路径没有时包含文件扩展名 .
headers{ [key: string]: string; }HTTP 在获取或重新验证资产时发送了信头 .

资产缓存窗口

装订返回 AssetCache.bind(...)。 。 。 .

Prop类型说明
promisePromise<ResolvedAssetSource>确定元素更新后本地源元数据.
方法签署说明
取消( e)() 无效防止此约束在元素解决后更新 .

资产缓存选项

使用的选项 AssetCache.bind(...)。 。 。 .

Prop类型说明默认
stateAttributestring属性更新为 loading, (中文(简体) ), ready,或 error。 。 。 .'data-asset-cache-state'
loadingClassstring正在获取本地文件时添加类 .
readyClassstring本地文件分配到元素后添加的类 .
errorClassstring本地解析失败时添加类 .

获取设置选项

用于将远程资产解析为本地持久性文件的选项 .

Prop类型说明
urlstring远程资产 URL.
keystring稳定缓存密钥 。 如果省略,插件使用 SHA-256 散列 url当资产直接用于 &lt;img&gt; 或者说 &lt;video&gt; 标签.
headers{ [key: string]: string; }HTTP 在获取或重新验证资产时发送了信头 .
revalidateAssetCacheRevalidateOptions对现有持久文件再次检查时的控制 .

删除

删除结果 .

Prop类型说明
removedboolean缓存文件或其元数据被删除时为真 .

资产缓存关键选项

通过缓存密钥或 URL 识别资产 . key 二者皆为胜.

Prop类型说明
keystring稳定缓存密钥 .
urlstring远程资产 URL 用于获取默认密钥 .

清除缓存结果

明确结果.

Prop类型说明
removednumber已删除的缓存资产数量.

资产控制列表

列表结果.

Prop类型说明
assetsCachedAsset[]磁盘上仍有文件的缓存资产 .

资产缓存

缓存大小结果 .

Prop类型说明
sizenumber以字节表示的总缓存资产大小 .

插件变压器

插件版本有效载荷 .

Prop类型说明
versionstring版本标识符由平台执行返回.

类型异名

资产分类修订战略

当某项资产已经存在于持续存储中时,则使用重新校正模式.

'never' | 'ttl' | 'always' | 'etag' | 'last-modified'

资产缓存来源输入

接受的方便投入 AssetCache.src(...) 财务报告和审定财务报表 AssetCache.resolve(...)。 。 。 .

string | ResolveAssetSourceOptions

资产缓存组合元素

由 AssetCache.bind(...)。 。 。 .

HTMLImageElement | HTMLVideoElement

版本与发布记录

@capgo/capacitor-asset-cache 共发布 9 个版本,首次发布于 2026/06/27;过去 12 个月发布了 9 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.1.8latest2026/10/1525 天前
8.1.72026/10/1327 天前
8.1.62026/10/091 个月前
8.1.52026/10/081 个月前
8.1.42026/10/081 个月前
8.1.32026/09/161 个月前

关于 @capgo/capacitor-asset-cache 的常见问题

@capgo/capacitor-asset-cache 是什么?

透明地本地缓存大型图像和视频的电容插件.

如何安装 @capgo/capacitor-asset-cache?

在项目目录运行 npm install @capgo/capacitor-asset-cache,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@capacitor/core(>=8.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@capgo/capacitor-asset-cache 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@capgo/capacitor-asset-cache 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@capgo/capacitor-asset-cache 可以商用吗?

@capgo/capacitor-asset-cache 使用 MPL-2.0 许可。弱 Copyleft:可以商用,也可以和闭源代码一起使用;但如果分发时修改了 MPL 授权的文件,这些文件的修改需以 MPL 开源。以上为概括,不构成法律意见,请以许可原文为准。

@capgo/capacitor-asset-cache 的下载量有多少?

根据 npm 官方下载统计,@capgo/capacitor-asset-cache 在 2026/10/09 – 2026/11/07 这 30 天内被下载 40,029 次,日均约 1,334 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@capgo/capacitor-asset-cache 还在维护吗?

最新版本 8.1.8 发布于 2026/10/15(25 天前);至今共发布 9 个版本,其中过去 12 个月发布了 9 个;首次发布于 2026/06/27。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。