跳过主要内容
返回插件
@capgo/capacitor-file-sharer
教程
由 github.com/Cap-go

文件共享

从base64数据或本地路径共享和保存文件,支持Android、iOS和Web

指南

文件共享的教程

使用 @capgo/capacitor-file-sharer

分享和保存来自 base64 数据、数据 URL、本地文件路径、 file:// URL、Android content:// URI 和 Capacitor _capacitor_file_ URL。

安装

bun add @capgo/capacitor-file-sharer
bunx cap sync

此插件暴露的内容

  • share - 在 Android 和 iOS 上打开本机分享sheet,或者在 Web 上下载文件。
  • save - 在 Android 上保存到公共收藏,打开 iOS 的保存/分享sheet,或者在 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 保存使用 MediaStore 在 Android 10+ 上和 Android 9 以下的公共目录。
  • iOS 分享支持临时文件的 base64 后备和直接本地路径分享。
  • Web 分享和保存下载文件,使用大文件的分块 base64 转换。

完整参考