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

相关推荐
by209994 小时前
学会使用std::string类,并理解其内部是如何管理字符串的详细阐述(上)
c++·笔记·字符串·类和对象·string
笑鸿的学习笔记5 小时前
C++笔记之大块顺序写
java·c++·笔记
山岚的运维笔记6 小时前
ComfyUI NVIDIA安装教程:官方便携版下载+run_nvidia_gpu.bat启动,8G显存Windows实操
运维·服务器·windows·笔记·prompt·aigc·comfyui
知潮网9 小时前
手机号注销两年,免密扣款仍在继续
笔记
m0_738185829 小时前
Flutter 鸿蒙化实战:flutter_scankit 适配 OpenHarmony,华为 ScanKit 扫码
flutter·华为·harmonyos·鸿蒙
Seraphina369 小时前
DVWA(SQL注入-low,medium,XSS反射-low)
前端·数据库·笔记·sql·网络安全·web·xss
维克兜率天11 小时前
【维克】配对交易的季节性:哪些品种适合长拿?
android·开发语言·笔记·python·算法·kotlin·量化
路弥行至12 小时前
【Head First 设计模式】第 2 章:观察者模式 —— 用现代 C++ 重新解读“交互对象的松耦合
c++·经验分享·笔记·观察者模式·设计模式·入门教程·headfirst
坤坤子吖13 小时前
Python基础语法学习:条件、循环与程序控制
开发语言·笔记·python·学习
远离UE413 小时前
UE5.8 Substrate Glint 笔记
笔记