From 4d8639763832605a4daa70d7aa44a6bf676fa922 Mon Sep 17 00:00:00 2001 From: dboy190 Date: Fri, 12 May 2023 11:21:56 +0800 Subject: [PATCH] add udmf docs Signed-off-by: dboy190 --- zh-cn/application-dev/database/Readme-CN.md | 3 + .../database/figures/udmf_architecture.png | Bin 0 -> 31589 bytes .../database/figures/udmf_type_ADT.png | Bin 0 -> 20107 bytes .../database/figures/udmf_type_File.png | Bin 0 -> 44494 bytes .../database/figures/udmf_type_SDT.png | Bin 0 -> 24910 bytes .../database/figures/udmf_type_Text.png | Bin 0 -> 20719 bytes ...hannel-across-devices-and-apps-overview.md | 59 +++ .../database/unified-data-definition.md | 243 +++++++++++ .../reference/apis/js-apis-data-udmf.md | 379 ++++++++++++++++++ 9 files changed, 684 insertions(+) create mode 100644 zh-cn/application-dev/database/figures/udmf_architecture.png create mode 100644 zh-cn/application-dev/database/figures/udmf_type_ADT.png create mode 100644 zh-cn/application-dev/database/figures/udmf_type_File.png create mode 100644 zh-cn/application-dev/database/figures/udmf_type_SDT.png create mode 100644 zh-cn/application-dev/database/figures/udmf_type_Text.png create mode 100644 zh-cn/application-dev/database/unified-data-channel-across-devices-and-apps-overview.md create mode 100644 zh-cn/application-dev/database/unified-data-definition.md create mode 100644 zh-cn/application-dev/reference/apis/js-apis-data-udmf.md diff --git a/zh-cn/application-dev/database/Readme-CN.md b/zh-cn/application-dev/database/Readme-CN.md index bbcae8eed4..e413d1f6f4 100644 --- a/zh-cn/application-dev/database/Readme-CN.md +++ b/zh-cn/application-dev/database/Readme-CN.md @@ -20,3 +20,6 @@ - [同设备跨应用数据共享概述](share-device-data-across-apps-overview.md) - [通过DataShareExtensionAbility实现数据共享](share-data-by-datashareextensionability.md) - [通过静默数据访问实现数据共享](share-data-by-silent-access.md) +- 跨设备跨应用标准化数据通道 + - [跨设备跨应用标准化数据通道概述](unified-data-channel-across-devices-and-apps-overview.md) + - [标准化数据定义](unified-data-definition.md) \ No newline at end of file diff --git a/zh-cn/application-dev/database/figures/udmf_architecture.png b/zh-cn/application-dev/database/figures/udmf_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..af99a2a6a862d172dab38716976fc3f297ef0d8f GIT binary patch literal 31589 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

mlAkb7=DJud}|)-(TRs6oxK_| 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 P4Y3tvRb{H)n+5(~0+>KU literal 0 HcmV?d00001 diff --git a/zh-cn/application-dev/database/figures/udmf_type_ADT.png b/zh-cn/application-dev/database/figures/udmf_type_ADT.png new file mode 100644 index 0000000000000000000000000000000000000000..dec55d97ed6710ed55b3becbc8f7bbb1b76256dc GIT binary patch literal 20107 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 literal 0 HcmV?d00001 diff --git a/zh-cn/application-dev/database/figures/udmf_type_File.png b/zh-cn/application-dev/database/figures/udmf_type_File.png new file mode 100644 index 0000000000000000000000000000000000000000..e19edf033f105f4873af356a50005a86e2d11991 GIT binary patch literal 44494 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 literal 0 HcmV?d00001 diff --git a/zh-cn/application-dev/database/figures/udmf_type_SDT.png b/zh-cn/application-dev/database/figures/udmf_type_SDT.png new file mode 100644 index 0000000000000000000000000000000000000000..2ddde55958178e31bf29ca24ae5d54634585abb1 GIT binary patch literal 24910 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 TYk>cOuti_j=-3M#9P$4EX9#9G literal 0 HcmV?d00001 diff --git a/zh-cn/application-dev/database/figures/udmf_type_Text.png b/zh-cn/application-dev/database/figures/udmf_type_Text.png new file mode 100644 index 0000000000000000000000000000000000000000..694ef9e32f3ed725d6754cb2bdfc4baca9f7cf9b GIT binary patch literal 20719 zcma&N2UL^W(myPMfYL>!6A+~cQUs}ih%}KVpaLQwAOg~R4`S#oB2A?!og-C{PH0jD zAySlHL$66_fduk@!a3gi-uu1lTkl%3OrGp#_Uzd+vwu@|)B{}&x(nX$Y32k>_3SnRuKz z!@@-RBkSScft)$>AXHOT`Ju1*W>eJ6%}0LAX>{Hs((zwZXX6xSbfjRTZ@0XN?zWWg2E&3|nvOMt zr}2R?{?ea+Ltl(S@TM-C-_jX#2X3Eka(qRMVaBi2lC z7dAF`@w={N|L`XGVA7-HncwFA{glDNC%)M40;a9lL1k7$8aNnx59BomE0>a|wthL+ zN(I_zZy)kaS>I@#_hjrGZcDjodW1$xWiHAGl*@93N_=%4G4uKQdNB_so`1!;Y47*r z^2XDFdm|Pz7g9zVEWR7CKXQ?RB0}go%WN!}CfEj(s$wdz$sJqK>o>L~p!W9(^={>E zKa+5g7!LKS&1&CDiAPPnv*~g-6Am7giRh{=5GP3gx!fM@G-e^QuqJ$CBqS+oMb5jM z+Y<2D;7cHkw{@3@BV*ZZs1yyyHy8E|l}jwjhY=+lAH_b+M9r@~f2dD4ZQ z;=SO)Jke>IgO)CD4EBHGg)%;&6*QNl9tbPetO)dpZJYR3U7>Ypnlj}8sr}iRvp1Lu zl?;3Hv~evV{Lr2KN*E}ZfN8RcnHflh>{r0U_Bo^-3yT|c%ueK9RBBzKxA#XP+Xolr zMG&&o-~F#cIR}r(dUt-oT#3gAEae*u>l&PHsvZ5Q=MVO*;fm5<#|Bb+_olHj2u$2O zvEFOl-_3$B&mt_n>Rx3YzWFvnZZv>hEHxs}&C58@jq&ZCc-%JmUW?KKhTg{b>&r*i ze_#XlcqToNikGQ-<<<&wZeUJ`=^p(iva7j?S48U;-kSTe)#QkQJbx-DOCcIx^nIB2 zXW#N(C4w8DPG67H(%fv^fK{hjyLBkv`;AW-A`Zj43f$;zUR@S`oGV?%9om;BQxm_~ zV10>xJD7-XN9$KOZCnhi30XAb3>7TBDMB=2xa&!0V<0la1qk)Of1Kyx>0BDPouoNB z_KXur6hzQ@--6zvaiHNhC$_#*pOQtyUFUn^X?o9k<@P|1Fv{xicvN`oe$L9?-`{Q) z8Gb9?J+hOQ7fs2cZ)5cjlBdzB!_CLEyOw);%>jCPI?@%`-Tjn4Q9_pWzn^W@E$@fD z4_XY44_oJn{WPKhFO7{^EP#oJn}ZbVZ~Y_`Rt@e~buRgm;$MSTWLO8hCtg$a=HK`rn7mur@dQ7wc@9g&Sd|1_PR)z6 zH~YwEfn6r6Oi)`?hg+#Oj?50aT}oB4xqHc|%jb2u@=q4mI&gIFr%9qB4F^TWj-VI0 zL)>MPQ6As){GS{-8WQ{+*qf2_<89cP+ZSA5UkDJcj<0HUaoIK}o}Nq&20e74Zcdhm zW$|qjA4Q1t`cF-hCVUrpuCbI}7>qGt^70--iC*Tg&};u7TAEjF@B5`uJ}w3w*wUN2 zq_6S*MT8)jA;z^~Sjl(t9H8^xQ7q?H`PhV3Q6jH4&#^rHY1+^2Q?#(S?z-|R;))*U zo8L}^iUdx*cGR^+N9j1zjPWJkCn?{vuoYYI3EFJ!1{KD~t)L;zgAS)5sic{jti^*K z<$K)CD~i!fB?a)tR}iJUVOXL^7XGPN{GL=(SpX~Xm?=T($0nCv;@fW}x=wtPnO_W` z+)dw6S9_c`8N&(|!*?Y<42yPvd^ABZLMW19=CCFjIP=6#c#W8mw2xqX|hIE+tTQV;%kC>0t3g8JH(6MKvhgDjLjlWrO= z84dvm?b?YuAFAmq4OQN}$j|0=oT~S-D~AvXJHqQi+*?LJgQlE@_LSe1u)mg)yi7MY z9k9*CzEP(zx8AT>ZOXJ%t5YAim~6BkCS&RS&pZ<@%|Tn`?nS)!Bn<}`rJcs5e2nWz ztVN~f9A~?|!dUPxh?7$-J$kKAC?_B)$}lvYRoo0IxzV*Ay;C;aE}2O_tWu#h*DX

YCc+88h4ONct=*5^GUyEwOKlA$QV8-V!koc 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 F{sUSd^veJM literal 0 HcmV?d00001 diff --git a/zh-cn/application-dev/database/unified-data-channel-across-devices-and-apps-overview.md b/zh-cn/application-dev/database/unified-data-channel-across-devices-and-apps-overview.md new file mode 100644 index 0000000000..4b61fc6767 --- /dev/null +++ b/zh-cn/application-dev/database/unified-data-channel-across-devices-and-apps-overview.md @@ -0,0 +1,59 @@ +# 跨设备跨应用标准化数据通道概述 + +## 简介 + +依据OpenHarmony构建“面向全场景、全连接、全智能时代的分布式操作系统”的愿景,人与数字世界的交互将发生巨大的变化。传统的用户在单设备以应用为中心的交互方式,远远达不到万物互联全场景的体验要求,主要原因有以下几点: +1) 硬件设备是有边界的,用户在多个设备之间的交互体验是割裂的; +2) 服务以应用为载体,既无法打破应用边界,更无法打破设备间的边界; +3) 用户与服务过程中产生的数据被孤立在应用内、设备内,数据也是有边界的; +从数据管理角度出发,随着OpenHarmony中数据跨应用、跨设备流转场景和需求的不断增加,流转过程中会存在数据协同通道繁杂、数据协同标准不一致、数据协同安全策略不一致、应用适配复杂度高、开发工作量增多等诸多痛点问题。统一数据管理框架(Unified Data Management Framework, UDMF)旨在定义数据跨应用、跨设备以及跨平台过程中的各项标准,提供统一的标准化通道,从而打破OpenHarmony中数据交互的应用边界与设备边界,为用户提供全新的分布式数据体验。 + +## 架构介绍 +UDMF提供统一的OpenHarmony数据语言和标准化的数据接入与读取通路。 + +**统一的OpenHarmony数据语言:** 构建OpenHarmony数据跨应用/设备交互的标准定义,降低应用/业务数据交互成本,促进数据生态建设。 +**标准化的数据接入与读取通路:** 提供安全、标准化的数据通路,降低业务跨应用跨设备数据交互的成本。 + +UDMF的整体架构如图1所示,业务层对外提供标准化的数据定义和数据接入与读取的业务接口。统一数据管理框架层提供标准化数据定义和数据接入与读取的具体实现,同时负责管理数据的生命周期、安全性、权限和存储。存储模块层负责数据的具体保存,可以使用分布式KVDB、分布式数据对象和文件系统进行数据存储。 + +**图1** UDMF架构图 + +![架构图](figures/udmf_architecture.png) + +### 标准化数据定义 + +UDMF提供了标准化的数据定义,统一定义了以下几种不同的数据类型。 + +**基础数据类型:** File、Text等,能够进行跨应用、跨设备、跨平台流转。File、Text数据类型可见图2和图3,它们可以具有继承关系和层次结构,衍生出更多的具体子类型。 + +**图2** UDMF File数据类型示意图 + +![架构图](figures/udmf_type_File.png) + +**图3** UDMF Text数据类型示意图 + +![架构图](figures/udmf_type_Text.png) + +**系统相关数据类型(System-Defined Type, SDT):**与具体的平台/操作系统绑定,如Form(UI卡片信息)、AppItem(App描述信息)、PixelMap(缩略图格式)等,该类数据可以实现系统/平台内的跨应用与跨设备流转,如图4所示。 +**图4** UDMF SDT数据类型示意图 + +![架构图](figures/udmf_type_SDT.png) + +**应用自定义数据类型(App-Defined Type, ADT):**单个应用自己定义的数据,该类数据可以实现应用内的跨平台与跨设备流转,如图5所示为例,应用可自定义三角形类型。 +**图5** UDMF ADT数据类型示意图 + +![架构图](figures/udmf_type_ADT.png) + +### 标准化数据通路 + +UDMF定义了标准化的数据接入与读取通路,为各种业务场景(如跨应用跨设备数据拖拽)提供了跨应用跨设备的数据接入与读取通路,通路中的数据URI定义为:udmf://intension/bundleName/groupName/guid,其中各组成部分的含义分别为: +**udmf:** 协议名,表示使用UDMF提供的数据通路; +**intension:** 通道分类,例如Drag(拖拽数据),SuperHub(中转站)等; +**bundleName:** 数据来源应用的包名称; +**groupName:** 分组名称,支持批量数据分组管理; +**guid:** 系统生成的数据id,全局唯一性。 + +## 约束限制 + +- UDMF中每条数据记录大小不超过2MB。 +- UDMF支持批量数据记录的分组管理,每个分组最多支持512条数据,整体大小不超过4MB。 diff --git a/zh-cn/application-dev/database/unified-data-definition.md b/zh-cn/application-dev/database/unified-data-definition.md new file mode 100644 index 0000000000..6b089bb6ed --- /dev/null +++ b/zh-cn/application-dev/database/unified-data-definition.md @@ -0,0 +1,243 @@ +# 标准化数据定义 + +## 场景介绍 + +为了构建OpenHarmony数据跨应用/设备交互的标准定义,降低应用/业务数据交互成本,促进数据生态建设,UDMF提供了标准化的数据定义,统一定义了多种常用的数据类型。应用可以使用统一数据管理框架提供的接口创建和使用这些标准化数据类型。 + +## 约束限制 + +- UDMF中每条数据记录大小不超过2MB。 +- UDMF支持批量数据记录的分组管理,每个分组最多支持512条数据,整体大小不超过4MB。 + +## 接口说明 + +### 导入模块 + +```js +import UDMF from '@ohos.data.UDMF'; +``` + +### UnifiedDataType + +```UnifiedData```中各```UnifiedRecord```数据类型。 +**系统能力:** SystemCapability.DistributedDataManager.UDMF.Core + +| 名称 | 说明 | +| ------------------------ | ---------------- | +| TEXT | 文本类型 | +| PLAIN_TEXT | 纯文本类型 | +| HYPER_LINK | 超链接类型 | +| HTML | 富文本类型 | +| IMAGE | 图片类型 | +| VIDEO | 视频类型 | +| SYSTEM_DEFINED_RECORD | 系统服务数据类型 | +| SYSTEM_DEFINED_FORM | 卡片类型 | +| SYSTEM_DEFINED_APP_ITEM | 图标类型 | +| SYSTEM_DEFINED_PIXEL_MAP | 二进制图片类型 | + +### UnifiedData + +表示UDMF数据对象,提供封装一组数据记录的方法。 +仅是按照统一数据规范创建数据,并未写入存储中。 +**系统能力:** SystemCapability.DistributedDataManager.UDMF.Core + +#### constructor + +constructor(record: UnifiedRecord) +用于创建带有一条数据记录的```UnifiedData```对象。 +**系统能力:** SystemCapability.DistributedDataManager.UDMF.Core +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------------- | ---- | --------------------------- | +| record | UnifiedRecord | Y | UnifiedData中携带的数据记录 | + +#### addRecord + +addRecord(record: UnifiedRecord): void; +在当前```UnifiedData```对象中添加一条记录。 +**系统能力:** SystemCapability.DistributedDataManager.UDMF.Core +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------------- | ---- | --------------------------- | +| record | UnifiedRecord | Y | UnifiedData中携带的数据记录 | + +**示例:** + +``` +import UDMF from '@ohos.data.UDMF'; + +let text = new UDMF.PlainText(); +text.textContent = "Hello world!"; +let unifiedData = new UDMF.UnifiedData(text); + +let text2 = new UDMF.PlainText(); +text2.textContent = "Hello, OpenHarmony!"; +unifiedData.addRecord(text2); +``` + +#### getRecords + +getRecords(): Array\; +将当前UnifiedData对象中的所有UnifiedRecord取出。 +**系统能力** :SystemCapability.DistributedDataManager.UDMF.Core +**返回值:** + +| 类型 | 描述 | +| ---------------------- | -------------------------- | +| Array\ | 向当前数据对象内添加的记录 | + +**示例:** + +``` +import UDMF from '@ohos.data.UDMF'; + +... + +let records = unifiedData.getRecords(); +console.log("array size is: " + records.size()); +``` + +### Summary + +描述某一```UnifiedData```对象的数据摘要。 +**系统能力:** SystemCapability.DistributedDataManager.UDMF.Core +**属性定义:** + +| 属性名 | 类型 | 可读 | 可写 | 说明 | +| --------- | ------------------------- | ---- | ---- | ------------------------------------------------------------ | +| symmary | { [key: string]: number } | Y | N | 是一个字典类型对象,key为UnifiedDataType类型,value为UnifiedData对象中key类型记录数据量总和(当前文件类型记录仅记录uri大小,非文件大小) | +| totalSize | number | Y | N | UnifiedData对象内记录总大小 | + +**示例:** + +``` +import UDMF from '@ohos.data.UDMF'; + +getSummaryCallback(data, err) { + let summary = data; + console.log("total: " + summary.totalSize); +} +``` + +### UnifiedRecord + +对UDMF数据支持的数据内容的抽象定义,称为记录,一个统一数据对象内包含一条或多条记录,例如一条文本记录,一条图片记录,一条HTML记录等。 +UnifiedRecord是一个抽象父类,无法保存具体数据内容,应用在使用时,不能将其添加到UnifiedData中,而应该创建带有数据内容的具体子类,如```Text```,```Image```等。 +**系统能力**:SystemCapability.DistributedDataManager.UDMF.Core + +#### getType + +getType(): UnifiedDataType; +获取当前UnifiedRecord的类型。 +由于从UnifiedData中调用```getRecords```取出数据都是```UnifiedRecord```对象,因此需要通过该接口查询该条记录的具体类型,将```UnifiedRecord```对象转换为其子类,调用子类接口。 +**系统能力** :SystemCapability.DistributedDataManager.UDMF.Core +**返回值:** + +| 类型 | 说明 | +| --------------- | ------------------------------ | +| UnifiedDataType | 当前数据记录对应的具体数据类型 | + +**示例:** + +``` +import UDMF from '@ohos.data.UDMF'; + +let text = new UDMF.PlainText(); +text.textContent = "Hello world!"; +let unifiedData = new UDMF.UnifiedData(text); + +let text2 = new UDMF.PlainText(); +text2.textContent = "Hello, OpenHarmony!"; +unifiedData.addRecord(text2); + +let records = unifiedData.getRecords(); +if (records[0] != null && records[0].getType() == UnifiedDataType.PlainText) { + console.log(((UDMF.Text)record[0]).content); +} +``` + +## 开发步骤 + +以一次创建数据(包含图片、纯文本、二进制图片三条数据记录)为例,说明开发步骤。 + +1. 导入`@ohos.data.UDMF`模块 + + ```js + import UDMF from '@ohos.data.UDMF'; + ``` +2. 创建图片数据记录,并初始化得到带有该数据记录的UnifiedData对象 + + (1)创建图片数据记录 + + ```js + let image = new UDMF.Image(); + ``` + + (2)修改对象属性 + + ```js + // Image对象包含一个属性imageUri + image.imageUri = '...'; + ``` + + (3)访问对象属性 + + ```js + console.info(`imageUri = ${image.imageUri}`); + ``` + + (4)创建一个统一数据对象实例 + + ```js + let unifiedData = new UDMF.UnifiedData(image); + ``` +3. 创建纯文本数据类型记录,将其添加到刚才创建的UnifiedData对象 + + ```js + let plainText = new UDMF.PlainText(); + plainText.textContent = 'this is textContent of plainText'; + plainText.abstract = 'abstract of plainText'; + plainText.details = { + plainKey1: 'plainValue1', + plainKey2: 'plainValue2', + }; + unifiedData.addRecord(plainText); + ``` +4. 创建二进制图片数据类型记录,将其添加到UnifiedData对象 + + ```js + let sdPixelMap = new UDMF.SystemDefinedPixelMap(); + sdPixelMap.rawData = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); + unifiedData.addRecord(sdPixelMap); + ``` +5. 记录添加完成后,可获取当前UnifiedData对象内的所有数据记录 + + ```js + let records = unifiedData.getRecords(); + ``` +6. 遍历每条记录,判断该记录的数据类型,转换为子类对象,得到原数据记录 + + ```js + for (let i = 0; i < records.length; i ++) { + // 读取该数据记录的类型 + let type = records[i].getType(); + switch (type) { + case UDMF.UnifiedDataType.IMAGE: + // 转换得到原图片数据记录 + let image = (records[i]); + break; + case UDMF.UnifiedDataType.PLAIN_TEXT: + // 转换得到原文本数据记录 + let plainText = (records[i]); + break; + case UDMF.UnifiedDataType.SYSTEM_DEFINED_PIXEL_MAP: + // 转换得到原二进制图片数据记录 + let sdPixelMap = (records[i]); + break; + default: + break; + } + } + ``` diff --git a/zh-cn/application-dev/reference/apis/js-apis-data-udmf.md b/zh-cn/application-dev/reference/apis/js-apis-data-udmf.md new file mode 100644 index 0000000000..0f45873970 --- /dev/null +++ b/zh-cn/application-dev/reference/apis/js-apis-data-udmf.md @@ -0,0 +1,379 @@ +# @ohos.data.UDMF(统一数据管理框架) + +本模块提供数据统一管理的能力,包括对文本、图片等数据类型的标准化定义。通过调用对应数据类型的接口,应用程序可将各种数据封装为统一数据对象。 + +> **说明:** +> +> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 + +## 导入模块 + +```js +import UDMF from '@ohos.data.UDMF'; +``` + +## UnifiedDataType + +[UnifiedData](#unifieddata)中各[UnifiedRecord](#unifiedrecord)的数据类型。 + +**系统能力:** SystemCapability.DistributedDataManager.UDMF.Core + +| 名称 | 值 | 说明 | +| ------------------------ | ---------------------------- | ---------------- | +| TEXT | "Text" | 文本类型 | +| PLAIN_TEXT | "Text.PlainText" | 纯文本类型 | +| HYPER_LINK | "Text.HyperLink" | 超链接类型 | +| HTML | "Text.HTML" | 富文本类型 | +| IMAGE | "File.Media.Image" | 图片类型 | +| VIDEO | "File.Media.Video" | 视频类型 | +| SYSTEM_DEFINED_RECORD | "SystemDefinedType" | 系统服务数据类型 | +| SYSTEM_DEFINED_FORM | "SystemDefinedType.Form" | 卡片类型 | +| SYSTEM_DEFINED_APP_ITEM | "SystemDefinedType.AppItem" | 图标类型 | +| SYSTEM_DEFINED_PIXEL_MAP | "SystemDefinedType.PixelMap" | 二进制图片类型 | + +## UnifiedData + +表示UDMF数据对象,提供封装一组数据记录的方法。 + +**系统能力:** SystemCapability.DistributedDataManager.UDMF.Core + +### constructor + +constructor(record: UnifiedRecord) + +用于创建带有一条数据记录的UnifiedData对象。此处数据记录应为UnifiedRecord子类对象。 + +**系统能力:** SystemCapability.DistributedDataManager.UDMF.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------------------------------- | ---- | ------------------------------- | +| record | [UnifiedRecord](#unifiedrecord) | 是 | 要添加到UnifiedData中的数据记录 | + +### addRecord + +addRecord(record: UnifiedRecord): void + +在当前UnifiedData对象中添加一条数据记录。此处数据记录应为UnifiedRecord子类对象。 + +**系统能力:** SystemCapability.DistributedDataManager.UDMF.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------------------------------- | ---- | ------------------------------- | +| record | [UnifiedRecord](#unifiedrecord) | 是 | 要添加到UnifiedData中的数据记录 | + +**示例:** + +```js +let text1 = new UDMF.PlainText(); +text1.textContent = 'this is textContent of text1'; +let unifiedData = new UDMF.UnifiedData(text1); + +let text2 = new UDMF.PlainText(); +text2.textContent = 'this is textContent of text2'; +unifiedData.addRecord(text2); +``` + +### getRecords + +getRecords(): Array\ + +将当前UnifiedData对象中的所有数据记录取出。通过本接口取出的数据为UnifiedRecord类型,需通过[getType](#gettype)获取数据类型后转为子类再使用。 + +**系统能力** :SystemCapability.DistributedDataManager.UDMF.Core + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------- | --------------------------------- | +| Array\<[UnifiedRecord](#unifiedrecord)\> | 当前UnifiedData对象内所添加的记录 | + +**示例:** + +```js +let records = unifiedData.getRecords(); +for (let i = 0; i < records.length; i ++) { + let record = records[i]; +} +``` + +## Summary + +描述某一UnifiedData对象的数据摘要,包括所含数据类型及大小。 + +**系统能力:** SystemCapability.DistributedDataManager.UDMF.Core + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| --------- | ------------------------- | ---- | ---- | ------------------------------------------------------------ | +| summary | { [key: string]: number } | 是 | 否 | 是一个字典类型对象,key表示数据类型(见[UnifiedDataType](#unifieddatatype)),value为UnifiedData对象中该类型记录数据量总和(当前文件类型记录仅记录uri大小,非文件大小) | +| totalSize | number | 是 | 否 | UnifiedData对象内记录总大小 | + +**示例:** + +```js +getSummaryCallback(data, err) { + let summaryData = data; + console.info(`summary: ${JSON.stringify(summaryData.summary)}`); + console.info(`totalSize: ${summaryData.totalSize}`); +} +``` + +## UnifiedRecord + +对UDMF数据支持的数据内容的抽象定义,称为记录,一个统一数据对象内包含一条或多条记录,例如一条文本记录,一条图片记录,一条HTML记录等。 + +UnifiedRecord是一个抽象父类,无法保存具体数据内容,应用在使用时,不能将其添加到UnifiedData中,而应该创建带有数据内容的具体子类,如Text、Image等。 + +### getType + +getType(): string + +获取当前UnifiedRecord的类型。由于从UnifiedData中调用[getRecords](#getrecords)所取出的数据是UnifiedRecord对象,因此需要通过本接口查询此记录的具体类型,再将该UnifiedRecord对象转换为其子类,调用子类接口。 + +**系统能力** :SystemCapability.DistributedDataManager.UDMF.Core + +**返回值:** + +| 类型 | 说明 | +| ------ | ------------------------------------------------------------ | +| string | 当前数据记录对应的具体数据类型,见[UnifiedDataType](#UnifiedDataType) | + +**示例:** + +```js +let text = new UDMF.PlainText(); +text.textContent = 'this is textContent of text'; +let unifiedData = new UDMF.UnifiedData(text); + +let records = unifiedData.getRecords(); +if (records[0].getType() == UDMF.UnifiedDataType.PLAIN_TEXT) { + let plainText = (records[0]); + console.info(`textContent: ${plainText.textContent}`); +} +``` + +## Text + +文本类型数据,是[UnifiedRecord](#unifiedrecord)的子类,也是文本类型数据的基类,用于描述文本类数据,推荐开发者优先使用Text的子类描述数据。 + +**系统能力**:SystemCapability.DistributedDataManager.UDMF.Core + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------- | ------------------------- | ---- | ---- | ------------------------------------------------------------ | +| details | { [key: string]: string } | 是 | 是 | 是一个字典类型对象,key和value都是string类型,用于描述文本内容,例如,可生成一个details内容为
{
"title":"标题",
"content":"内容"
}
的数据对象,用于描述一篇文章。 | + +**示例:** + +```js +let text = new UDMF.Text(); +text.details = { + title: 'MyTitle', + content: 'this is content', +}; +let unifiedData = new UDMF.UnifiedData(text); +``` + +## PlainText + +纯文本类型数据,是[Text](#text)的子类,用于描述纯文本类数据。 + +**系统能力**:SystemCapability.DistributedDataManager.UDMF.Core + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ----------- | ------ | ---- | ---- | ---------------------- | +| textContent | string | 是 | 是 | 纯文本内容 | +| abstract | string | 是 | 是 | 纯文本摘要,非必填字段 | + +**示例:** + +```js +let text = new UDMF.PlainText(); +text.textContent = 'this is textContent'; +``` + +## HyperLink + +超链接类型数据,是[Text](#text)的子类,用于描述超链接类型数据。 + +**系统能力**:SystemCapability.DistributedDataManager.UDMF.Core + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ----------- | ------ | ---- | ---- | ------------------------ | +| url | string | 是 | 是 | 链接url | +| description | string | 是 | 是 | 链接内容描述,非必填字段 | + +**示例:** + +```js +let link = new UDMF.HyperLink(); +link.url = 'www.XXX.com'; +``` + +## HTML + +HTML类型数据,是[Text](#text)的子类,用于描述超文本标记语言数据。 + +**系统能力**:SystemCapability.DistributedDataManager.UDMF.Core + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------ | ------ | ---- | ---- | -------------------------------------- | +| htmlContent | string | 是 | 是 | html格式内容 | +| plainContent | string | 是 | 是 | 去除html标签后的纯文本内容,非必填字段 | + +**示例:** + +```js +let html = new UDMF.HTML(); +html.htmlContent = '

标题

'; +``` + +## Image + +图片类型数据,是[UnifiedRecord](#unifiedrecord)的子类,用于描述图片文件。 + +**系统能力**:SystemCapability.DistributedDataManager.UDMF.Core + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| -------- | ------ | ---- | ---- | ----------- | +| imageUri | string | 是 | 是 | 图片数据uri | + +**示例:** + +```js +let image = new UDMF.Image(); +image.imageUri = 'schema://com.samples.test/files/test.jpg'; +``` + +## Video + +视频类型数据,是[UnifiedRecord](#unifiedrecord)的子类,用于描述视频文件。 + +**系统能力**:SystemCapability.DistributedDataManager.UDMF.Core + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| -------- | ------ | ---- | ---- | ----------- | +| videoUri | string | 是 | 是 | 视频数据uri | + +**示例:** + +```js +let video = new UDMF.Video(); +video.videoUri = 'schema://com.samples.test/files/test.mp4'; +``` + +## SystemDefinedRecord + +SystemDefinedRecord是[UnifiedRecord](#unifiedrecord)的子类,也是OpenHarmony平台上系统侧定义的数据类型的基类,用于描述文本类数据,推荐开发者优先使用SystemDefinedRecord的子类描述数据。 + +**系统能力**:SystemCapability.DistributedDataManager.UDMF.Core + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------- | ------------------------------------------------- | ---- | ---- | ------------------------------------------------------------ | +| details | { [key: string]: number \| string \| Uint8Array } | 是 | 是 | 是一个字典类型对象,key是string类型,value可以写入number(数值类型),string(字符串类型),Uint8Array(二进制字节数组)类型数据。 | + +**示例:** + +```js +let sdr = new UDMF.SystenDefinedReocrd(); +let u8Array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); +sdr.details = { + title: 'recordTitle', + version: 1, + content: u8Array, +}; +let unifiedData = new UDMF.UnifiedData(sdr); +``` + +## SystemDefinedForm + +卡片类型数据,是[SystemDefinedRecord](#systemdefinedrecord)的子类。 + +**系统能力**:SystemCapability.DistributedDataManager.UDMF.Core + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ----------- | ------ | ---- | ---- | ----------------- | +| formId | number | 是 | 是 | 卡片id | +| formName | string | 是 | 是 | 卡片名称 | +| bundleName | string | 是 | 是 | 卡片所属bundle名 | +| abilityName | string | 是 | 是 | 卡片对应ability名 | +| module | string | 是 | 是 | 卡片所属module名 | + +**示例:** + +```js +let form = new UDMF.SystemDefinedForm(); +form.formId = 123456; +form.formName = 'MyFormName'; +form.bundleName = 'MyBundleName'; +form.abilityName = 'MyAbilityName'; +form.module = 'MyModule'; +let u8Array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); +form.details = { + formKey1: 123, + formKey2: 'formValue', + formKey3: u8Array, +}; +let unifiedData = new UDMF.UnifiedData(form); +``` + +## SystemDefinedAppItem + +图标类型数据,是[SystemDefinedRecord](#systemdefinedrecord)的子类。 + +**系统能力**:SystemCapability.DistributedDataManager.UDMF.Core + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ----------- | ------ | ---- | ---- | --------------------- | +| appId | string | 是 | 是 | 图标对应应用id | +| appName | string | 是 | 是 | 图标对应应用名 | +| appIconId | string | 是 | 是 | 图标图片id | +| appLabelId | string | 是 | 是 | 图标标签id | +| bundleName | string | 是 | 是 | 图标对应应用bundle名 | +| abilityName | string | 是 | 是 | 图标对应应用ability名 | + +**示例:** + +```js +let appItem = new UDMF.SystemDefinedAppItem(); +appItem.appId = 'MyAppId'; +appItem.appName = 'MyAppName'; +appItem.appIconId = 'MyAppIconId'; +appItem.appLabelId = 'MyAppLabelId'; +appItem.bundleName = 'MyBundleName'; +appItem.abilityName = 'MyAbilityName'; +let u8Array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); +appItem.details = { + appItemKey1: 123, + appItemKey2: 'appItemValue', + appItemKey3: u8Array, +}; +let unifiedData = new UDMF.UnifiedData(appItem); +``` + +## SystemDefinedPixelMap + +与系统侧定义的PixelMap类型数据对应的图片类型数据,是[SystemDefinedRecord](#systemdefinedrecord)的子类,仅保存PixelMap的二进制数据。 + +**系统能力**:SystemCapability.DistributedDataManager.UDMF.Core + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------- | ---------- | ---- | ---- | ------------------------ | +| rawData | Uint8Array | 是 | 是 | PixelMap对象的二进制数据 | + +**示例:** + +```js +import image from '@ohos.multimedia.image'; // PixelMap类定义所在模块 + +let arrayBuf = new ArrayBuffer(pixelmap.getPixelBytesNumber()); // pixelmap为image.PixelMap对象 +pixelmap.readPixelsToBuffer(arrayBuf); +let u8Array = new Uint8Array(arrayBuf); +let sdpixel = new UDMF.SystemDefinedPixelMap(); +sdpixel.rawData = u8Array; +let unifiedData = new UDMF.UnifiedData(sdpixel); +``` + + -- GitLab