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,只能当"面板已拉起"处理。‌‌

相关推荐
●VON1 小时前
Flutter 鸿蒙插件适配实战:用 boot_time_plugin 1.0.0 读取启动时间与运行时长
flutter·华为·harmonyos
宵时待雨2 小时前
linux笔记归纳19:网络层协议IP
linux·网络·笔记·网络协议·tcp/ip
javgo.cn2 小时前
Markune:一个开源的 Local-first Markdown 工作区
笔记·编辑器
逆境不可逃3 小时前
Pi Agent 学习笔记:不同模型如何接入同一套工具循环
笔记·学习
♪飙♪3 小时前
电气笔记——表的认识
笔记
PC2005-cloud3 小时前
Rust学习笔记:所有权、借用与生命周期——Rust的核心机制
笔记·学习·rust
不羁的木木3 小时前
给鸿蒙 App 增加唤起系统邮件发送能力 —— flutter_email_sender 的鸿蒙使用指南
flutter·华为·harmonyos
弘毅 失败的 mian4 小时前
数组和指针基础
c语言·开发语言·经验分享·笔记
问心无愧05134 小时前
ctf show web 177
前端·笔记