__CAPGO_KEEP_0__
@capgo/capacitor-资产缓存 文件和存储 开源

资源缓存 Capacitor 插件

缓存CDN图片和视频到持久的应用存储并将它们绑定为本地媒体源

安装

bun add @capgo/capacitor-asset-cache bunx cap sync
npm、pnpm或yarn
  • npm install @capgo/capacitor-asset-cache
  • pnpm add @capgo/capacitor-asset-cache
  • yarn add @capgo/capacitor-asset-cache

指南

如何在Capacitor中使用Asset Cache

使用@capgo/capacitor-asset-cache

@capgo/capacitor-asset-cache 存储大型CDN图像和视频在应用所有者持久存储中,然后返回Capacitor webviews的本地源URL。

安装

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

此插件暴露了什么

  • bind - 将图片或视频元素附加到本地资产源并在准备好时更新它。
  • src - 当资产存在本地时返回一个本地源字符串。
  • resolve - 返回本地源加上缓存元数据。
  • configure - 设置默认CDN和重新验证行为。
  • get, list, remove, clear- 当需要时管理缓存。 getCacheSize - 使用示例

- 配置一次CDN,然后绑定元素通过相对路径:

- 元素得到

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

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

const hero = document.querySelector<HTMLImageElement>('#hero');

if (hero) {
  AssetCache.bind(hero, 'images/hero.jpg');
}

- 当原生fetch运行时,接收本地源URL并移动到 data-asset-cache-state="loading" - 受保护的资产 ready.

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

- 头文件由插件在fetch或重新验证远程文件时发送。web元素仍然只接收本地源URL。

受保护的资产

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

无需 CDN 基础 URL

传入绝对 URL 时不需要配置 cdnUrl.

const src = await AssetCache.src('https://cdn.example.com/assets/videos/intro.mp4');

相对路径需要配置或每次调用 cdnUrl 或 cdnUrl.

存储说明

在 iOS 上,文件位于应用支持文件夹中,并且不被 iCloud 备份。 在 Android 上,文件位于应用内部文件夹中。系统不会将这些文件视为可丢弃的缓存文件,但卸载、清除应用数据、 clear()仍然会删除它们。 remove() 完整参考

__CAPGO_KEEP_0__:

继续使用 @capgo/capacitor-asset-cache

如果您正在使用 使用 @capgo/capacitor-asset-cache 来规划持久的媒体加载,连接它与 @capgo/capacitor-asset-cache 查看实现细节 开始使用 查看实现细节 @capgo/capacitor-下载器 进行明确的后台下载,并 @capgo/capacitor文件 进行一般的本地文件访问

常见问题解答

Asset Cache 插件 FAQ

如何在 Capacitor 应用中安装 Asset Cache 插件?

Run &quot;bun add @capgo/capacitor-asset-cache&quot; (or &quot;npm install @capgo/capacitor-asset-cache&quot;), then run &quot;bunx cap sync&quot; so the iOS and Android projects pick up the native code. Import it from &quot;@capgo/capacitor-asset-cache&quot; in your app code.

是否支持 @capgo/capacitor-asset-cache 与 React、Vue 和 Angular 一起使用?

是的。Asset Cache 是一个 Capacitor 包,因此它与任何在 Capacitor 内部运行的 Web 框架一起工作,包括 Ionic、React、Vue、Angular、Svelte 和普通 JavaScript。

哪个 Capacitor 版本支持 @capgo/capacitor-asset-cache?

Capgo 插件遵循 Capacitor 的主要版本:使用与 Capacitor 主要版本匹配的插件主要版本(例如插件 v8 与 Capacitor 8)。在 GitHub README 中的兼容性表格中列出了维护的版本。

是否支持 @capgo/capacitor-asset-cache 免费和开源?

是的。源 code 公开在 GitHub 上,https://github.com/Cap-go/capacitor-asset-cache/,并且该包可以从 npm 免费安装。欢迎 bug 报告和 pull 请求。

是否可以在不经过 App Store 审核的情况下更新使用 Asset Cache 的 code?

安装或升级插件会更改本机 code,因此需要一个新的商店构建。之后,JavaScript、HTML 和 CSS 的更改可以立即通过 Capgo 实时更新发布。

不必等待应用程序审查即可将Asset Cache更改推送到商店

一旦插件在您的商店构建中,Capgo即刻将您的JavaScript、HTML和CSS更改推送给用户

开始使用Capgo