获取分享结果
场景介绍
从5.1.0(18)版本开始,支持宿主应用获取用户分享结果。
基于业务实现需要,开发者可统计用户使用分享功能时,将内容分享到了哪些渠道。渠道信息规则如下:
- 系统操作有固定名称。请参见:ShareAbilityName。
- 非系统操作采用'[bundleName]#[moduleName]#[abilityName]'格式拼接。
开发步骤
-
导入相关模块。
import { common } from '@kit.AbilityKit';import { systemShare } from '@kit.ShareKit';import { uniformTypeDescriptor as utd } from '@kit.ArkData'; -
构造分享数据。
// 构造ShareData,需配置一条有效数据信息let data: systemShare.SharedData = new systemShare.SharedData({utd: utd.UniformDataType.PLAIN_TEXT,content: 'Hello HarmonyOS'}); -
注册分享结果监听事件,并启动分享面板。
// 构建ShareControllerlet 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});