跳转到正文

快速入门

GitHub

你可以使用我们的 AI 辅助设置来安装插件。使用以下命令将 Capgo skills 添加到你的 AI 工具中:

终端窗口
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

然后使用以下 prompt:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-file-sharer` plugin in my project.

如果你更想手动设置,请运行以下命令安装插件,并按照下方各平台的说明操作:

终端窗口
npm install @capgo/capacitor-file-sharer
npx cap sync
import { FileSharer } from '@capgo/capacitor-file-sharer';
import { FileSharer } from '@capgo/capacitor-file-sharer';
await FileSharer.share({
filename: 'report.pdf',
contentType: 'application/pdf',
base64Data: reportBase64,
});
import { FileSharer } from '@capgo/capacitor-file-sharer';
const result = await FileSharer.save({
filename: 'report.pdf',
contentType: 'application/pdf',
base64Data: reportBase64,
});
console.log(result);
  • 原生同步:运行 npx cap sync 在插件升级后。
  • 唯一可信来源:信任 src/definitions.ts 在 GitHub 仓库中。
import { FileSharer } from '@capgo/capacitor-file-sharer';
await FileSharer.share({
filename: 'report.pdf',
contentType: 'application/pdf',
base64Data: reportBase64,
title: 'Quarterly report',
text: 'Attached report',
});

base64Data 可以是原始 base64 字符串,也可以是 data URL,例如 data:application/pdf;base64,....

await FileSharer.share({
filename: 'export.zip',
contentType: 'application/zip',
path: fileUri,
});

原生实现支持本地路径, file:// URL、Android content:// URI 和 Capacitor _capacitor_file_ URL。

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 的保存目录为 downloads, pictures, movies, music,以及 documents。在 Android 10 及更高版本上,插件通过 MediaStore 写入。在 Android 9 及更低版本上,公开保存使用 manifest WRITE_EXTERNAL_STORAGE 权限,并配合 maxSdkVersion=28.

await FileSharer.share({
filename: 'photo.jpg',
contentType: 'image/jpeg',
path: photoUri,
title: 'Site photo',
subject: 'Photo export',
text: 'Captured during inspection.',
});

text 作为传入 EXTRA_TEXT 在 Android 上作为参数,在 iOS 上作为第二个 activity 项。

export interface ShareFileOptions {
filename: string;
base64Data?: string;
path?: string;
contentType?: string;
text?: string;
title?: string;
subject?: string;
android?: AndroidFileSharerOptions;
}
export interface AndroidFileSharerOptions {
chooserTitle?: string;
saveDirectory?: 'downloads' | 'pictures' | 'movies' | 'music' | 'documents';
relativePath?: string;
}
export interface SaveFileResult {
uri?: string;
}
  • ERR_PARAM_NO_FILENAME - filename 缺失或为空。
  • ERR_PARAM_NO_DATA - 既没有 base64Data 也没有 path 提供。
  • ERR_PARAM_DATA_INVALID - 无法解码 base64 输入。
  • ERR_LOCAL_FILE_NOT_FOUND - 无法打开提供的本地路径或内容 URI。
  • ERR_FILE_CACHING_FAILED - 无法写入原生临时文件。
  • ERR_FILE_SAVE_FAILED - Android 无法将文件保存到公共存储。
  • ERR_ACTIVITY_NOT_FOUND - Android 无法打开分享目标。
  • USER_CANCELLED - iOS 分享面板被关闭且未完成操作。

本页记录该插件的 src/definitions.ts生成。当上游的公共 API 发生变化时,请重新运行 sync。

如果你正在使用 快速入门 要规划存储和文件处理,请将其与 使用 @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,以及 使用 @capgo/capacitor-file 在 @capgo/capacitor-file. 中使用原生能力