HarmonyOS 鸿蒙Next 调用系统分享功能

发布于 1周前 作者 htzhanglong 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 调用系统分享功能

系统分享

介绍

手机使用系统分享API,分享图片或文字,这里重点展示分享图片的效果。

系统分享源码链接

使用说明

  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
    });
  }

工程结构&模块类型

└──entry                                          // 入口模块
   └──src/main/ets
      ├──entryability
      │  └──EntryAbility.ets                      // 入口
      └──pages
          └──Index.ets                            // 首页,下载和分享逻辑

相关权限

使用网络权限:ohos.permission.INTERNET, 主要是为了下载网络图片,本地资源分享不需要网络权限。

约束与限制

  1. 本示例仅支持标准系统上运行,支持设备:华为手机。
  2. HarmonyOS系统:HarmonyOS NEXT Developer Beta1及以上。
  3. DevEco Studio版本:DevEco Studio NEXT Developer Beta1及以上。
  4. HarmonyOS SDK版本:HarmonyOS NEXT Developer Beta1 SDK及以上。
  5. 要正常使用,还需要被分享方配合,参考应用内处理分享内容

参考资料

手机应用发起系统分享


更多关于HarmonyOS 鸿蒙Next 调用系统分享功能的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next 调用系统分享功能的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next系统分享 鸿蒙场景化代码

HarmonyOS 鸿蒙Next系统在场景化编程方面带来了诸多创新。场景化代码的核心在于利用鸿蒙系统的分布式特性,实现不同设备间的无缝协同与数据共享。

在鸿蒙系统中,开发者可以通过场景化卡片(Ability)来定义应用在不同场景下的行为。这些卡片可以跨设备运行,例如在手机上创建的提醒事项可以自动同步到智慧屏或平板电脑上显示。

鸿蒙Next系统引入了更丰富的场景化编程接口,允许开发者更精细地控制设备间的交互。例如,通过场景化代码,可以实现智能家居设备间的联动,如当用户离家一定距离时,自动关闭家中的灯光和电器。

在具体实现上,鸿蒙系统采用了基于ArkTS(Ark TypeScript)的声明式开发框架,使开发者能够以更简洁的方式编写场景化代码。ArkTS支持组件化开发,开发者可以将复杂的UI界面拆分成多个可复用的组件,提高开发效率。

此外,鸿蒙系统还提供了丰富的API和SDK,帮助开发者快速接入和调试场景化应用。这些工具可以显著降低开发难度,提升应用的稳定性和性能。

如果开发者在编写鸿蒙场景化代码时遇到问题,可以参考鸿蒙系统的官方文档或开发者社区的资源。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部