目录

获取分享结果

场景介绍

从5.1.0(18)版本开始,支持宿主应用获取用户分享结果。

基于业务实现需要,开发者可统计用户使用分享功能时,将内容分享到了哪些渠道。渠道信息规则如下:

开发步骤

  1. 导入相关模块。

    import { common } from '@kit.AbilityKit';
    import { systemShare } from '@kit.ShareKit';
    import { uniformTypeDescriptor as utd } from '@kit.ArkData';
  2. 构造分享数据。

    // 构造ShareData,需配置一条有效数据信息
    let data: systemShare.SharedData = new systemShare.SharedData({
      utd: utd.UniformDataType.PLAIN_TEXT,
      content: 'Hello HarmonyOS'
    });
  3. 注册分享结果监听事件,并启动分享面板。

    // 构建ShareController
    let controller: systemShare.ShareController = new systemShare.ShareController(data);
    // 获取UIAbility上下文对象
    let uiContext: UIContext = this.getUIContext();
    let context: common.UIAbilityContext = uiContext.getHostContext() as common.UIAbilityContext;
    // 注册分享结果事件监听
    controller.on('shareCompleted', (result: systemShare.ShareOperationResult) => {
      console.info('shareCompleted name:', result.targetAbilityInfo.name);
      // 可根据分享渠道进行数据统计等操作
    });
    
    // 进行分享面板显示
    controller.show(context, {
      previewMode: systemShare.SharePreviewMode.DEFAULT,
      selectionMode: systemShare.SelectionMode.SINGLE
    });