往期鸿蒙5.0全套实战文章必看:(文中附带全栈鸿蒙5.0学习资料)
@ohos.data.unifiedDataChannel (标准化数据通路)
本模块为统一数据管理框架(Unified Data Management Framework,UDMF)的组成部分,针对多对多跨应用数据共享的不同业务场景提供了标准化的数据通路,提供了标准化的数据接入与读取接口。同时对文本、图片等数据类型提供了标准化定义,方便不同应用间进行数据交互,减少数据类型适配的工作量。
说明
本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
导入模块
import { unifiedDataChannel } from '@kit.ArkData';
ShareOptions12+
UDMF支持的设备内使用范围类型枚举。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.DistributedDataManager.UDMF.Core
| 名称 | 值 | 说明 |
|---|---|---|
| IN_APP | 0 | 表示允许在本设备同应用内使用。 |
| CROSS_APP | 1 | 表示允许在本设备内跨应用使用。 |
GetDelayData12+
type GetDelayData = (type: string) => UnifiedData
对UnifiedData的延迟封装,支持延迟获取数据。当前只支持同设备剪贴板场景,后续场景待开发。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.DistributedDataManager.UDMF.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 作为延迟封装的标识。 |
返回值:
| 类型 | 说明 |
|---|---|
| UnifiedData | 当延迟封装触发时,返回一个UnifiedData对象。 |
示例:
import { uniformTypeDescriptor } from '@kit.ArkData';
let getDelayData: unifiedDataChannel.GetDelayData = ((type: string) => {
if (type == uniformTypeDescriptor.UniformDataType.PLAIN_TEXT) {
let text = new unifiedDataChannel.Text();
text.details = {
Key: 'textKey',
Value: 'textValue',
};
let textData = new unifiedDataChannel.UnifiedData(text);
return textData;
}
return new unifiedDataChannel.UnifiedData();
});
ValueType12+
type ValueType = number | string | boolean | image.PixelMap | Want | ArrayBuffer | object | null | undefined
用于表示统一数据记录允许的数据字段类型。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.DistributedDataManager.UDMF.Core
| 类型 | 说明 |
|---|---|
| number | 表示number的类型。 |
| string | 表示string的类型。 |
| boolean | 表示boolean的类型。 |
| image.PixelMap | 表示image.PixelMap的类型。 |
| Want | 表示Want的类型。 |
| ArrayBuffer | 表示ArrayBuffer的类型。 |
| object | 表示object的类型。 |
| null | 表示null。 |
| undefined | 表示undefined。 |
UnifiedDataProperties12+
定义统一数据对象中所有数据记录的属性,包含时间戳、标签、粘贴范围以及一些附加数据等。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.DistributedDataManager.UDMF.Core
| 名称 | 类型 | 只读 | 可选 | 说明 |
|---|---|---|---|---|
| extras12+ | Record<string, object> | 否 | 是 | 是一个字典类型对象,用于设置其他附加属性数据。非必填字段,默认值为空字典对象。 |
| tag12+ | string | 否 | 是 | 用户自定义标签。非必填字段,默认值为空字符串。 |
| timestamp12+ | Date | 是 | 是 | UnifiedData的生成时间戳。默认值为1970年1月1日(UTC)。 |
| shareOptions12+ | ShareOptions | 否 | 是 | 指示UnifiedData支持的设备内使用范围,非必填字段,默认值为CROSS_APP。 |
| getDelayData12+ | GetDelayData | 否 | 是 | 延迟获取数据回调。当前只支持同设备剪贴板场景,后续场景待开发。非必填字段,默认值为undefined。 |
示例:
import { uniformTypeDescriptor } from '@kit.ArkData';
let properties = new unifiedDataChannel.UnifiedDataProperties();
properties.extras = {
key: {
title: 'MyTitle',
content: 'MyContent'
}
};
properties.tag = "this is tag of properties";
properties.shareOptions = unifiedDataChannel.ShareOptions.CROSS_APP;
properties.getDelayData = ((type: string) => {
if (type == uniformTypeDescriptor.UniformDataType.PLAIN_TEXT) {
let text = new unifiedDataChannel.Text();
text.details = {
Key: 'textKey',
Value: 'textValue',
};
let textData = new unifiedDataChannel.UnifiedData(text);
return textData;
}
return new unifiedDataChannel.UnifiedData();
});
UnifiedData
表示UDMF统一数据对象,提供封装一组数据记录的方法。
系统能力: SystemCapability.DistributedDataManager.UDMF.Core
属性
| 名称 | 类型 | 只读 | 可选 | 说明 |
|---|---|---|---|---|
| properties12+ | UnifiedDataProperties | 否 | 否 | 当前统一数据对象中所有数据记录的属性,包含时间戳、标签、粘贴范围以及一些附加数据等。 元服务API: 从API version 12开始,该接口支持在元服务中使用。 |
constructor12+
constructor()
用于创建统一数据对象。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.DistributedDataManager.UDMF.Core
示例:
let unifiedData = new unifiedDataChannel.UnifiedData();
constructor
constructor(record: UnifiedRecord)
用于创建带有一条数据记录的统一数据对象。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
系统能力: SystemCapability.DistributedDataManager.UDMF.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| record | UnifiedRecord | 是 | 要添加到统一数据对象中的数据记录,该记录为UnifiedRecord或其子类对象。 |
错误码:
以下错误码的详细。
| 错误码ID | 错误信息 |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
let text = new unifiedDataChannel.PlainText();
text.textContent = 'this is textContent of text';
let unifiedData = new unifiedDataChannel.UnifiedData(text);
addRecord
addRecord(record: UnifiedRecord): void
在当前统一数据对象中添加一条数据记录。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
系统能力: SystemCapability.DistributedDataManager.UDMF.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| record | UnifiedRecord | 是 | 要添加到统一数据对象中的数据记录,该记录为UnifiedRecord子类对象。 |
错误码:
以下错误码的详细。
| 错误码ID | 错误信息 |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. |
示例:
let text1 = new unifiedDataChannel.PlainText();
text1.textContent = 'this is textContent of text1';
let unifiedData = new unifiedDataChannel.UnifiedData(text1);
let text2 = new unifiedDataChannel.PlainText();
text2.textContent = 'this is textContent of text2';
unifiedData.addRecord(text2);
getRecords
getRecords(): Array<UnifiedRecord>
将当前统一数据对象中的所有数据记录取出。通过本接口取出的数据为UnifiedRecord类型,需通过getType获取数据类型后转为子类再使用。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
系统能力 :SystemCapability.DistributedDataManager.UDMF.Core
返回值:
| 类型 | 说明 |
|---|---|
| Array<UnifiedRecord> | 当前统一数据对象内所添加的记录。 |
示例:
import { uniformTypeD

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



