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,但是发起分享时却找不到目标应用是什么原因
解决方案:
宿主应用发起分享时,需要确认发起的分享的数据类型是否和目标应用匹配。
