实现系统分享功能鸿蒙示例代码

鸿蒙场景化示例代码技术工程师
发布于 2025-3-20 14:41
浏览
0收藏

本文原创发布在华为开发者社区

介绍

本示例基于Share Kit能力实现了宿主应用分享图片的功能。开发者可结合具体业务场景设定目标应用并处理分享内容。

实现系统分享功能源码链接

效果预览

实现系统分享功能鸿蒙示例代码-鸿蒙开发者社区

使用说明

  1. 点击“查看并下载图片”按钮,从网络上下载图片。
  2. 点击“系统分享”按钮,选择图片,在底部选择shareget可拉起接受方应用,分享图片。

实现思路

分享图片

使用request.downloadFile接口,根据开发者自己设定的图片网址下载图片。构造分享数据,首先配置一条有效数据信息,获取待分享图片的沙箱路径,使用fileUri.getUriFromPath接口将沙箱路径转为文件URI,最后启动分享面板分享图片。核心代码如下,源码参考

Index.ets

TestSystemShare() {
    // 构造ShareData,需配置一条有效数据信息
    let data: systemShare.SharedData = new systemShare.SharedData({
      utd: utd.UniformDataType.PLAIN_TEXT,
      content: 'Hello HarmonyOS'
    });
    // 获取文件的沙箱路径
    let pathInSandbox = this.context.filesDir + '/test.jpg';
    // 将沙箱路径转换为uri
    let uri = fileUri.getUriFromPath(pathInSandbox);
    // 添加多条记录
    data.addRecord({
      utd: utd.UniformDataType.PNG,
      uri: uri
    });
    // 构建ShareController
    let controller: systemShare.ShareController = new systemShare.ShareController(data);
    // 注册分享面板关闭监听
    controller.on('dismiss', () => {
      hilog.info(0x0001,"JSAPP",'TestShare Share panel closed');
      // 分享结束,可处理其他业务。
    });
    // 进行分享面板显示
    controller.show(this.context, {
      previewMode: systemShare.SharePreviewMode.DETAIL,
      selectionMode: systemShare.SelectionMode.SINGLE
    });
  }
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.

分类
收藏
回复
举报


回复
    相关推荐