鸿蒙NEXT开发:ArkData数据管理-@ohos.data.unifiedDataChannel (标准化数据通路)

 往期鸿蒙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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值