使用 @capgo/capacitor-file-sharer
支持从 base64 数据、data URL 及本地文件路径分享并保存文件 file:// URL、Android content:// URI 和 Capacitor _capacitor_file_ URL。
安装
bun add @capgo/capacitor-file-sharer
bunx cap sync
插件暴露的内容
share- 在 Android 和 iOS 上打开原生分享面板,或在 Web 端下载文件。save- 保存至 Android 公共集合,打开 iOS 保存/分享面板,或在 Web 端下载。getPluginVersion- 返回当前平台的实现版本。
用法示例
分享生成的文件
import { FileSharer } from '@capgo/capacitor-file-sharer';
await FileSharer.share({
filename: 'report.pdf',
contentType: 'application/pdf',
base64Data: reportBase64,
title: 'Quarterly report',
text: 'Attached report',
});
分享本地文件
await FileSharer.share({
filename: 'export.zip',
contentType: 'application/zip',
path: fileUri,
});
保存至 Android 下载目录
const result = await FileSharer.save({
filename: 'backup.zip',
contentType: 'application/zip',
base64Data: zipBase64,
android: {
saveDirectory: 'downloads',
relativePath: 'Download/My App',
},
});
console.log(result.uri);
平台注意事项
- Android 分享功能使用
FileProvider,ClipData,以及 URI 授权,以便选择器预览和缩略图能够读取文件。 - Android 保存功能在 Android 10+ 上使用 MediaStore,在 Android 9 及以下版本使用公共目录。
- iOS 分享同时支持 base64 临时文件和直接本地路径分享。
- Web 端分享和保存会下载文件,大文件则使用分块 base64 转换。
完整参考
- GitHub: https://github.com/Cap-go/capacitor-file-sharer/
- 文档:/docs/plugins/file-sharer/
继续阅读:使用 @capgo/capacitor-file-sharer
如果你正在使用 使用 @capgo/capacitor-file-sharer 要规划存储和文件处理,请将其与 @capgo/capacitor-file-sharer 了解 @capgo/capacitor-file-sharer 中的实现细节, 快速入门 有关“入门指南”中的实现细节, @capgo/capacitor-data-storage-sqlite 关于 @capgo/capacitor-data-storage-sqlite 中的实现细节, 使用 @capgo/capacitor-data-storage-sqlite 关于使用 @capgo/capacitor-data-storage-sqlite 的原生能力,以及 @capgo/capacitor-file 关于 @capgo/capacitor-file. 中的实现细节