1e41f4b71Sopenharmony_ci# @ohos.data.uniformDataStruct (标准化数据结构)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci本模块为统一数据管理框架(Unified Data Management Framework,UDMF)的组成部分,针对多对多跨应用数据共享的不同业务场景提供了部分标准化数据类型[UniformDataType](js-apis-data-uniformTypeDescriptor.md#uniformdatatype)对应的数据结构,方便不同应用间进行数据交互,减少数据类型适配的工作量。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci> **说明:**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci## 导入模块
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci```js
12e41f4b71Sopenharmony_ciimport { uniformDataStruct } from '@kit.ArkData';
13e41f4b71Sopenharmony_ci```
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci## PlainText
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci纯文本类型数据,用于描述纯文本类型数据。
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.DistributedDataManager.UDMF.Core
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci| 名称        | 类型   | 只读 | 可选 | 说明                    |
22e41f4b71Sopenharmony_ci| ----------- | ------ | ---- | ---- |-----------------------|
23e41f4b71Sopenharmony_ci| uniformDataType | 'general.plain-text'| 是   | 否   | 统一数据类型标识,标识为纯文本类型数据,固定为“general.plain-text”,数据类型描述信息见[UniformDataType](js-apis-data-uniformTypeDescriptor.md#uniformdatatype)。                |
24e41f4b71Sopenharmony_ci| textContent | string | 否   | 否   | 纯文本内容。                |
25e41f4b71Sopenharmony_ci| abstract    | string | 否   | 是   | 纯文本摘要,非必填字段,默认值为空字符串。 |
26e41f4b71Sopenharmony_ci| details | Record<string, string> | 否   | 是 | 是一个字典类型对象,key和value都是string类型,用于描述文本内容详细属性。例如,可生成一个details内容为<br />{<br />"title":"标题",<br />"content":"内容"<br />}<br />的数据对象,用于描述一篇文章的详细属性。非必填字段,默认值为空字典对象。 |
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci**示例:**
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci```ts
31e41f4b71Sopenharmony_cilet plainTextDetails : Record<string, string> = {
32e41f4b71Sopenharmony_ci  'attr1': 'value1',
33e41f4b71Sopenharmony_ci  'attr2': 'value2',
34e41f4b71Sopenharmony_ci}
35e41f4b71Sopenharmony_cilet plainText : uniformDataStruct.PlainText = {
36e41f4b71Sopenharmony_ci  uniformDataType: 'general.plain-text',
37e41f4b71Sopenharmony_ci  textContent : 'This is plainText textContent example',
38e41f4b71Sopenharmony_ci  abstract : 'this is abstract',
39e41f4b71Sopenharmony_ci  details : plainTextDetails,
40e41f4b71Sopenharmony_ci}
41e41f4b71Sopenharmony_ciconsole.info('plainText.uniformDataType: ' + plainText.uniformDataType);
42e41f4b71Sopenharmony_ciif(plainText.details != undefined){
43e41f4b71Sopenharmony_ci  let plainTextDetailsObj : Record<string, string> = plainText.details;
44e41f4b71Sopenharmony_ci  for(let kv of Object.entries(plainTextDetailsObj)) {
45e41f4b71Sopenharmony_ci    console.info('plainText.details.attr: ' + kv[0] + ', value:' + kv[1]);
46e41f4b71Sopenharmony_ci  }
47e41f4b71Sopenharmony_ci}
48e41f4b71Sopenharmony_ci```
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ci## Hyperlink
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci超链接类型数据,用于描述超链接类型数据。
53e41f4b71Sopenharmony_ci
54e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.DistributedDataManager.UDMF.Core
55e41f4b71Sopenharmony_ci
56e41f4b71Sopenharmony_ci| 名称        | 类型   | 只读 | 可选 | 说明           |
57e41f4b71Sopenharmony_ci| ----------- | ------ | ---- | ---- |--------------|
58e41f4b71Sopenharmony_ci| uniformDataType | 'general.hyperlink'| 是   | 否   | 统一数据类型标识为超链接类型数据,固定为“general.hyperlink”,数据类型描述信息见[UniformDataType](js-apis-data-uniformTypeDescriptor.md#uniformdatatype)。
59e41f4b71Sopenharmony_ci| url         | string | 否   | 否   | 链接url。       |
60e41f4b71Sopenharmony_ci| description | string | 否   | 是   | 链接内容描述,非必填字段,默认值为空字符串。 |
61e41f4b71Sopenharmony_ci| details | Record<string, string> | 否   | 是  | 是一个字典类型对象,key和value都是string类型,用于描述Hyperlink的详细属性内容。例如,可生成一个details内容为<br />{<br />"title":"标题",<br />"content":"内容"<br />}<br />的数据对象。非必填字段,默认值为空字典对象。 |
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci**示例:**
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ci```ts
66e41f4b71Sopenharmony_cilet hyperlinkDetails : Record<string, string> = {
67e41f4b71Sopenharmony_ci  'attr1': 'value1',
68e41f4b71Sopenharmony_ci  'attr2': 'value2',
69e41f4b71Sopenharmony_ci}
70e41f4b71Sopenharmony_cilet hyperlink : uniformDataStruct.Hyperlink = {
71e41f4b71Sopenharmony_ci  uniformDataType:'general.hyperlink',
72e41f4b71Sopenharmony_ci  url : 'www.XXX.com',
73e41f4b71Sopenharmony_ci  description : 'This is the description of this hyperlink',
74e41f4b71Sopenharmony_ci  details : hyperlinkDetails,
75e41f4b71Sopenharmony_ci}
76e41f4b71Sopenharmony_ciconsole.info('hyperlink.uniformDataType: ' + hyperlink.uniformDataType);
77e41f4b71Sopenharmony_ci```
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ci## HTML
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ciHTML类型数据,用于描述超文本标记语言数据。
82e41f4b71Sopenharmony_ci
83e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.DistributedDataManager.UDMF.Core
84e41f4b71Sopenharmony_ci
85e41f4b71Sopenharmony_ci| 名称         | 类型   | 只读 | 可选 | 说明                    |
86e41f4b71Sopenharmony_ci| ------------ | ------ | ---- | ---- |-----------------------|
87e41f4b71Sopenharmony_ci| uniformDataType | 'general.html'| 是   | 否   | 统一数据类型标识为html类型数据,固定为“general.html”,数据类型描述信息见[UniformDataType](js-apis-data-uniformTypeDescriptor.md#uniformdatatype)。
88e41f4b71Sopenharmony_ci| htmlContent  | string | 否   | 否   | html格式内容。             |
89e41f4b71Sopenharmony_ci| plainContent | string | 否   | 是   | 去除html标签后的纯文本内容,非必填字段,默认值为空字符串。 |
90e41f4b71Sopenharmony_ci| details | Record<string, string> | 否   | 是   | 是一个字典类型对象,key和value都是string类型,用于描述HTML的详细属性内容。例如,可生成一个details内容为<br />{<br />"title":"标题",<br />"content":"内容"<br />}<br />的数据对象。非必填字段,默认值为空字典对象。 |
91e41f4b71Sopenharmony_ci
92e41f4b71Sopenharmony_ci**示例:**
93e41f4b71Sopenharmony_ci
94e41f4b71Sopenharmony_ci```ts
95e41f4b71Sopenharmony_cilet htmlObjDetails : Record<string, string> = {
96e41f4b71Sopenharmony_ci  'attr1': 'value1',
97e41f4b71Sopenharmony_ci  'attr2': 'value2',
98e41f4b71Sopenharmony_ci}
99e41f4b71Sopenharmony_cilet htmlObj : uniformDataStruct.HTML = {
100e41f4b71Sopenharmony_ci  uniformDataType :'general.html',
101e41f4b71Sopenharmony_ci  htmlContent : '<div><p>标题</p></div>',
102e41f4b71Sopenharmony_ci  plainContent : 'this is plainContent',
103e41f4b71Sopenharmony_ci  details : htmlObjDetails,
104e41f4b71Sopenharmony_ci}
105e41f4b71Sopenharmony_ciconsole.info('htmlObj.uniformDataType: ' + htmlObj.uniformDataType);
106e41f4b71Sopenharmony_ci```
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ci## OpenHarmonyAppItem
109e41f4b71Sopenharmony_ci
110e41f4b71Sopenharmony_ci系统定义的桌面图标类型数据。
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.DistributedDataManager.UDMF.Core
113e41f4b71Sopenharmony_ci
114e41f4b71Sopenharmony_ci| 名称        | 类型   | 只读 | 可选 | 说明              |
115e41f4b71Sopenharmony_ci| ----------- | ------ | ---- | ---- |-----------------|
116e41f4b71Sopenharmony_ci| uniformDataType | 'openharmony.app-item'| 是   | 否   | 统一数据类型标识为桌面图标类型数据,固定为“openharmony.app-item”,数据类型描述信息见[UniformDataType](js-apis-data-uniformTypeDescriptor.md#uniformdatatype)。
117e41f4b71Sopenharmony_ci| appId       | string | 否   | 否   | 图标对应的应用id。      |
118e41f4b71Sopenharmony_ci| appName     | string | 否   | 否   | 图标对应的应用名。       |
119e41f4b71Sopenharmony_ci| appIconId   | string | 否   | 否   | 图标的图片id。        |
120e41f4b71Sopenharmony_ci| appLabelId  | string | 否   | 否   | 图标名称对应的标签id。    |
121e41f4b71Sopenharmony_ci| bundleName  | string | 否   | 否   | 图标对应的应用bundle名。 |
122e41f4b71Sopenharmony_ci| abilityName | string | 否   | 否   | 图标对应的应用ability名。 |
123e41f4b71Sopenharmony_ci| details | Record<string, number \| string \| Uint8Array> | 否   | 是   | 是一个字典类型对象,key是string类型,value可以写入number(数值类型)、string(字符串类型)、Uint8Array(二进制字节数组)类型数据。非必填字段,默认值为空字典对象。|
124e41f4b71Sopenharmony_ci
125e41f4b71Sopenharmony_ci
126e41f4b71Sopenharmony_ci**示例:**
127e41f4b71Sopenharmony_ci
128e41f4b71Sopenharmony_ci```ts
129e41f4b71Sopenharmony_cilet u8Array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
130e41f4b71Sopenharmony_cilet appItemDetails : Record<string, number | string | Uint8Array> = {
131e41f4b71Sopenharmony_ci  'appItemKey1': 123,
132e41f4b71Sopenharmony_ci  'appItemKey2': 'appItemValue',
133e41f4b71Sopenharmony_ci  'appItemKey3': u8Array,
134e41f4b71Sopenharmony_ci}
135e41f4b71Sopenharmony_cilet appItem : uniformDataStruct.OpenHarmonyAppItem = {
136e41f4b71Sopenharmony_ci  uniformDataType:'openharmony.app-item',
137e41f4b71Sopenharmony_ci  appId : 'MyAppId',
138e41f4b71Sopenharmony_ci  appName : 'MyAppName',
139e41f4b71Sopenharmony_ci  appIconId : 'MyAppIconId',
140e41f4b71Sopenharmony_ci  appLabelId : 'MyAppLabelId',
141e41f4b71Sopenharmony_ci  bundleName : 'MyBundleName',
142e41f4b71Sopenharmony_ci  abilityName : 'MyAbilityName',
143e41f4b71Sopenharmony_ci  details : appItemDetails,
144e41f4b71Sopenharmony_ci}
145e41f4b71Sopenharmony_ciconsole.info('appItem.uniformDataType: ' + appItem.uniformDataType);
146e41f4b71Sopenharmony_ci```
147