HarmonyOS SDK Share Kit闭源开放能力具体有哪些?

摘要:1.问题描述: 分享的时候,如何获取精准的utd类型? 解决方案: 使用Share Kit时,宿主应用和目标应用定义数据类型须遵照UDMF(统一数据管理框架)定义的UTD(统一类型描述符)规范。 UTD中定义的标准化数据类型在设计原则上按物
1.问题描述: 分享的时候,如何获取精准的utd类型? 解决方案: 使用Share Kit时,宿主应用和目标应用定义数据类型须遵照UDMF(统一数据管理框架)定义的UTD(统一类型描述符)规范。 UTD中定义的标准化数据类型在设计原则上按物理和逻辑分为两类: 按物理分类的根节点为general.entity,用于描述类型的物理属性,比如文件、目录等,具体可见图1。 按逻辑分类的根节点为general.object,用于描述类型的功能性特征,如图片、网页等,具体可见图2。 全部的数据类型可以参考:UTD基础类型表格。 目标应用需要在应用配置文件(src/main/module.json5)的skills配置actions为ohos.want.action.sendData,并且uris需穷举所有支持的数据类型。 "extensionAbilities": [ { "name": "TestShareAbility", "srcEntry": "./ets/abilities/TestShareAbility.ts", "type": "share", // 支持分享数据处理 "description": "xxx", "exported": true, "label": "$string:xx_label", "icon": "$media:icon", "skills": [ { "actions": [ "ohos.want.action.sendData" ], // 目标应用在配置支持接收的数据类型时,需穷举支持的UTD // 比如:支持全部图片类型,可声明:general.image,如支持全部数据类型,可声明:general.object "uris": [ { "scheme": "file", "utd": "general.text", "maxFileSupported": 1 }, { "scheme": "file", "utd": "general.png", "maxFileSupported": 1 }, { "scheme": "file", "utd": "general.jpeg", "maxFileSupported": 1 } ] } ] } ] 2.问题描述: 如何判断设备是否支持碰一碰分享? 解决方案: 通过canIUse检测设备是否支持碰一碰能力: if (canIUse('SystemCapability.Collaboration.HarmonyShare')) { // 支持一碰分享的能力. } 3.问题描述: 如何获取用户点击了分享到哪个平台或者保存图片到本地事件? 解决方案: 参考:systemShare(分享)下的on('shareCompleted')接口,注册用户完成分享事件监听。返回用户分享渠道,可用于数据统计等。 4.问题描述: 目标应用已配置支持png和jpeg图片类型,但截屏分享时,分享方式区仍未显示目标应用。 解决方案: 目标应用在配置支持接收的数据类型时,需穷举支持的utd。支持全部图片类型,可声明:general.image。 5.问题描述: 目标应用配置了module.json5,但是发起分享时却找不到目标应用是什么原因 解决方案: 宿主应用发起分享时,需要确认发起的分享的数据类型是否和目标应用匹配。
阅读全文