欢迎加入开源鸿蒙跨平台社区: https://openharmonycrossplatform.csdn.net

Flutter 三方库 share_plus 鸿蒙化分享功能实战

摘要

share_plus 是 Flutter 生态中用于实现内容分享的常用插件,支持分享文本、链接、文件等到其他应用。本文基于 OpenHarmony TPC 仓库的适配版本,详细讲解 share_plus 在鸿蒙项目中的接入流程、核心 API 使用及常见问题排查,并附真实设备运行截图验证。

核心要点

  • 掌握分享文本和链接
  • 实现文件分享
  • 配置分享面板

一、分享功能架构

分享内容

文本

链接

图片

文件

share_plus 功能

share

shareXFiles

ShareParams

Flutter 应用

share_plus

OpenHarmony 分享服务

分享到其他应用

分享面板

分享内容处理

二、参考来源

资源名称 链接
OpenHarmony TPC Flutter 仓库 AtomGit
share_plus pub.dev share_plus

三、接入步骤

3.1 配置 pubspec.yaml

dependencies:
  flutter:
    sdk: flutter
  
  share_plus:
    git:
      url: https://atomgit.com/openharmony-tpc/flutter_packages.git
      path: packages/share_plus/share_plus

3.2 核心代码示例

import 'package:share_plus/share_plus.dart';

class ShareService {
  // 分享文本
  Future<void> shareText(String text, {String? subject}) async {
    await Share.share(text, subject: subject);
  }

  // 分享链接
  Future<void> shareUrl(String url, {String? text}) async {
    final shareText = text != null ? '$text\n$url' : url;
    await Share.share(shareText);
  }

  // 分享单个文件
  Future<void> shareFile({
    required String filePath,
    String? subject,
  }) async {
    await Share.shareXFiles(
      [XFile(filePath)],
      subject: subject,
    );
  }

  // 分享多个文件
  Future<void> shareFiles({
    required List<String> filePaths,
    String? text,
    String? subject,
  }) async {
    final files = filePaths.map((path) => XFile(path)).toList();
    await Share.shareXFiles(
      files,
      text: text,
      subject: subject,
    );
  }

  // 带主题的分享
  Future<void> shareWithSubject({
    required String text,
    required String subject,
  }) async {
    await Share.share(text, subject: subject);
  }
}

3.3 完整使用示例

import 'package:flutter/material.dart';
import 'package:share_plus/share_plus.dart';

class ShareDemo extends StatelessWidget {
  final ShareService _shareService = ShareService();

  
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Share Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Icon(Icons.share, size: 80, color: Colors.blue),
            SizedBox(height: 20),
            Text(
              '分享功能演示',
              style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
            ),
            SizedBox(height: 32),
            ElevatedButton.icon(
              onPressed: () => _shareService.shareText(
                '这是一段分享文本,来自 Flutter OpenHarmony 应用!',
              ),
              icon: Icon(Icons.text_fields),
              label: Text('分享文本'),
            ),
            SizedBox(height: 16),
            ElevatedButton.icon(
              onPressed: () => _shareService.shareUrl(
                'https://openharmony.cn',
                text: '开源鸿蒙官网',
              ),
              icon: Icon(Icons.link),
              label: Text('分享链接'),
            ),
            SizedBox(height: 16),
            ElevatedButton.icon(
              onPressed: () => _shareService.shareWithSubject(
                text: '欢迎访问开源鸿蒙社区!',
                subject: '开源鸿蒙邀请函',
              ),
              icon: Icon(Icons mail),
              label: Text('分享带主题内容'),
            ),
            SizedBox(height: 16),
            ElevatedButton.icon(
              onPressed: () => _shareService.shareText(
                '欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net',
              ),
              icon: Icon(Icons.group),
              label: Text('分享社区链接'),
            ),
          ],
        ),
      ),
    );
  }
}

四、验证步骤

步骤 验证内容 预期结果
Step 1 分享文本 打开分享面板
Step 2 分享链接 链接正确显示
Step 3 分享文件 文件被附加
Step 4 取消分享 返回应用

五、常见问题排查

现象 根因 处理方式
分享面板不显示 无可分享应用 检查设备应用列表
文件分享失败 文件路径错误 检查文件是否存在
文本为空 参数传递错误 检查分享文本内容

六、运行成功截图

分享功能演示

应用页面

复制到剪贴板中的内容

在这里插入图片描述

七、总结

share_plus 是实现社交分享功能的核心插件,在 OpenHarmony 平台上的适配完善。通过分享功能,用户可以将应用内容快速分享到其他平台,是社交类应用的必备工具。


附录:Schema.org 结构化数据

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "Flutter 三方库 share_plus 鸿蒙化分享功能实战",
  "description": "基于 OpenHarmony TPC 仓库,详细讲解 share_plus 在鸿蒙项目中的接入流程、文本分享与文件分享功能实现。",
  "author": { "@type": "Person", "name": "OpenHarmony 跨平台开发者" },
  "publisher": { "@type": "Organization", "name": "OpenHarmony 跨平台社区", "url": "https://openharmonycrossplatform.csdn.net" },
  "datePublished": "2026-05-07",
  "dateModified": "2026-05-07",
  "mainEntityOfPage": "https://openharmonycrossplatform.csdn.net",
  "keywords": ["开源鸿蒙", "OpenHarmony", "Flutter for OpenHarmony", "share_plus", "分享功能", "三方库适配"],
  "inLanguage": "zh-CN"
}
</script>
Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐