share_plus 是 Flutter 官方的跨平台分享插件,用来调起系统分享面板,支持文本、链接和文件分享,目前最新版本是 13.3.0(截至 2026 年 9 月)。
📦 安装与基础用法
- 添加依赖 :在 pubspec.yaml 里加上 share_plus: ^13.3.0,然后运行 flutter pub get。
- 导入库 :import 'package:share_plus/share_plus.dart'
; - 分享文本 :新版 API 用 SharePlus.instance.share(),需要传 ShareParams 对象,分享完还能拿到结果状态。
Dart
final result = await SharePlus.instance.share(
ShareParams(text: '看看这个网站 https://example.com'),
);
if (result.status == ShareResultStatus.success) {
print('分享成功!');
}
🔧 分享文件和链接
- 分享文件 :在 ShareParams 里传 files 列表,用 XFile 包装文件路径,可以一次分享多个。
- 分享链接 :用 ShareParams(uri: uri),iOS 会自动抓取链接的元数据展示在面板里,其他平台按纯文本处理。
- 动态生成文件 :可以用 XFile.fromData() 直接从内存数据创建文件,配合 fileNameOverrides 指定文件名,否则会用随机 UUID 命名。
Dart
final params = ShareParams(
files: [XFile('${directory.path}/image.jpg')],
text: '看这张图',
);
await SharePlus.instance.share(params);
⚠️ 注意几个坑
- iPad 必须传sharePositionOrigin,不然会崩溃或界面无响应。
- Web 端 分享文件默认走 Web Share API,不支持时会降级为下载文件,可以设置 downloadFallbackEnabled: false 关闭。
- XFile.fromData会写临时文件 到缓存目录,建议定期清理,或者自己先写到 File 再分享。
- Facebook 系应用(包括 Messenger)在 Android/iOS 上无法可靠分享,插件官方已确认这个限制。
📱 鸿蒙适配情况
如果要在 HarmonyOS NEXT 上使用,官方版本还没完全合并鸿蒙分支,需要用社区维护的适配版本,通过 Git 依赖引入,配置会稍微复杂一些。 另外鸿蒙端目前拿不到真实的分享结果,status 会一直返回 unavailable,只能当"面板已拉起"处理。