Flutter 开发笔记:share_plus 分享插件

share_plus 是 Flutter 官方的跨平台分享插件,用来调起系统分享面板,支持文本、链接和文件分享,目前最新版本是 ‌13.3.0‌(截至 2026 年 9 月)。‌‌

📦 安装与基础用法

  1. ‌添加依赖 ‌:在 pubspec.yaml 里加上 share_plus: ^13.3.0,然后运行 flutter pub get。
  2. ‌导入库 ‌:import 'package:share_plus/share_plus.dart';
  3. ‌分享文本 ‌:新版 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,只能当"面板已拉起"处理。‌‌

相关推荐
Young Doro1 天前
从 DV 表示到 MI 下界,再到“置换技巧“(含“指数倾斜“完整推导)
笔记
ACP广源盛139246256731 天前
PCIe Gen3 交换芯片选型笔记:中小通道扩展方案 IX7012@ACP 评估
笔记·硬件架构·硬件工程·pcie·国产芯片
职豚求职小程序刷题1 天前
国投证券笔试测评题型揭秘
笔记
Nuanyt1 天前
LeetCode Hot100 刷题笔记 · 普通数组专题
java·笔记·算法·leetcode
程序员老刘1 天前
Flutter版本选择指南:3.44稳定了11周正式转正 | 2026年10月
flutter·ai编程·客户端
职豚求职小程序1 天前
蒙牛27秋招|数智化未来星测评重点整理✅
笔记
沪上企服通1 天前
从票据到凭证的数据血缘:代账系统的 traceability 与可审计回放设计笔记
笔记
春弦_1 天前
LeetCode Hot 100 刷题笔记
笔记·leetcode·哈希算法
叼烟扛炮1 天前
Linux 学习笔记(四):文件检索与管道重定向
linux·笔记·学习
愤怒火龙果1 天前
蓝队笔记整理04 安全设备、内网处置与云上防护
笔记·网络安全