Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
a6c38cf3
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a6c38cf3
编写于
8月 18, 2023
作者:
W
wangkai
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
UDMF接口拆分
Signed-off-by:
N
wangkai
<
wangkai424@huawei.com
>
上级
873194ec
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
163 addition
and
140 deletion
+163
-140
zh-cn/application-dev/database/unified-data-channels.md
zh-cn/application-dev/database/unified-data-channels.md
+22
-20
zh-cn/application-dev/database/unified-data-definition.md
zh-cn/application-dev/database/unified-data-definition.md
+13
-11
zh-cn/application-dev/reference/apis/js-apis-data-unifiedDataChannel.md
...ion-dev/reference/apis/js-apis-data-unifiedDataChannel.md
+94
-109
zh-cn/application-dev/reference/apis/js-apis-data-uniformTypeDescriptor.md
...-dev/reference/apis/js-apis-data-uniformTypeDescriptor.md
+34
-0
未找到文件。
zh-cn/application-dev/database/unified-data-channels.md
浏览文件 @
a6c38cf3
...
...
@@ -29,7 +29,7 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
## 接口说明
以下是UDMF标准化数据通路的相关接口,均为异步接口。异步接口均有callback和Promise两种返回形式,下表均以callback形式为例,更多接口及使用方式请见
[
统一数据管理框架
](
../reference/apis/js-apis-data-udmf
.md
)
。
以下是UDMF标准化数据通路的相关接口,均为异步接口。异步接口均有callback和Promise两种返回形式,下表均以callback形式为例,更多接口及使用方式请见
[
标准化数据通路
](
../reference/apis/js-apis-data-unifiedDataChannel.md
)
和
[
标准化数据定义与描述
](
../reference/apis/js-apis-data-uniformTypeDescriptor
.md
)
。
| 接口名称 | 描述 |
|-----------------------------------------------------------------------------------------|---------------------------------------------|
...
...
@@ -45,24 +45,25 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
### 数据提供方
1.
导入
`@ohos.data.
UDMF
`
模块。
1.
导入
`@ohos.data.
unifiedDataChannel`
和
`@ohos.data.uniformTypeDescriptor
`
模块。
```
ts
import
UDMF
from
'
@ohos.data.UDMF
'
;
import
unifiedDataChannel
from
'
@ohos.data.unifiedDataChannel
'
;
import
uniformTypeDescriptor
from
'
@ohos.data.uniformTypeDescriptor
'
;
```
2.
创建一个统一数据对象并插入到UDMF的公共数据通路中。
```
ts
let
plainText
=
new
UDMF
.
PlainText
();
let
plainText
=
new
unifiedDataChannel
.
PlainText
();
plainText
.
textContent
=
'
hello world!
'
;
let
unifiedData
=
new
UDMF
.
UnifiedData
(
plainText
);
let
unifiedData
=
new
unifiedDataChannel
.
UnifiedData
(
plainText
);
// 指定要插入数据的数据通路枚举类型
let
options
=
{
intention
:
UDMF
.
Intention
.
DATA_HUB
intention
:
unifiedDataChannel
.
Intention
.
DATA_HUB
}
try
{
UDMF
.
insertData
(
options
,
unifiedData
,
(
err
,
data
)
=>
{
unifiedDataChannel
.
insertData
(
options
,
unifiedData
,
(
err
,
data
)
=>
{
if
(
err
===
undefined
)
{
console
.
info
(
`Succeeded in inserting data. key =
${
data
}
`
);
}
else
{
...
...
@@ -76,9 +77,9 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
3.
更新上一步骤插入的统一数据对象。
```
ts
let
plainText
=
new
UDMF
.
PlainText
();
let
plainText
=
new
unifiedDataChannel
.
PlainText
();
plainText
.
textContent
=
'
How are you!
'
;
let
unifiedData
=
new
UDMF
.
UnifiedData
(
plainText
);
let
unifiedData
=
new
unifiedDataChannel
.
UnifiedData
(
plainText
);
// 指定要更新的统一数据对象的URI
let
options
=
{
...
...
@@ -86,7 +87,7 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
};
try
{
UDMF
.
updateData
(
options
,
unifiedData
,
(
err
)
=>
{
unifiedDataChannel
.
updateData
(
options
,
unifiedData
,
(
err
)
=>
{
if
(
err
===
undefined
)
{
console
.
info
(
'
Succeeded in updating data.
'
);
}
else
{
...
...
@@ -102,18 +103,18 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
```
ts
// 指定要删除数据的数据通路枚举类型
let
options
=
{
intention
:
UDMF
.
Intention
.
DATA_HUB
intention
:
unifiedDataChannel
.
Intention
.
DATA_HUB
};
try
{
UDMF
.
deleteData
(
options
,
(
err
,
data
)
=>
{
unifiedDataChannel
.
deleteData
(
options
,
(
err
,
data
)
=>
{
if
(
err
===
undefined
)
{
console
.
info
(
`Succeeded in deleting data. size =
${
data
.
length
}
`
);
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
let
records
=
data
[
i
].
getRecords
();
for
(
let
j
=
0
;
j
<
records
.
length
;
j
++
)
{
if
(
records
[
j
].
getType
()
===
UDMF
.
Unified
DataType
.
PLAIN_TEXT
)
{
let
text
=
<
UDMF
.
PlainText
>
(
records
[
j
]);
if
(
records
[
j
].
getType
()
===
uniformTypeDescriptor
.
Uniform
DataType
.
PLAIN_TEXT
)
{
let
text
=
<
unifiedDataChannel
.
PlainText
>
(
records
[
j
]);
console
.
info
(
`
${
i
+
1
}
.
${
text
.
textContent
}
`
);
}
}
...
...
@@ -129,28 +130,29 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
### 数据访问方
1.
导入
`@ohos.data.
UDMF
`
模块。
1.
导入
`@ohos.data.
unifiedDataChannel`
和
`@ohos.data.uniformTypeDescriptor
`
模块。
```
ts
import
UDMF
from
'
@ohos.data.UDMF
'
;
import
unifiedDataChannel
from
'
@ohos.data.unifiedDataChannel
'
;
import
uniformTypeDescriptor
from
'
@ohos.data.uniformTypeDescriptor
'
;
```
2.
查询存储在UDMF公共数据通路中的统一数据对象。
```
ts
// 指定要查询数据的数据通路枚举类型
let
options
=
{
intention
:
UDMF
.
Intention
.
DATA_HUB
intention
:
unifiedDataChannel
.
Intention
.
DATA_HUB
};
try
{
UDMF
.
queryData
(
options
,
(
err
,
data
)
=>
{
unifiedDataChannel
.
queryData
(
options
,
(
err
,
data
)
=>
{
if
(
err
===
undefined
)
{
console
.
info
(
`Succeeded in querying data. size =
${
data
.
length
}
`
);
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
let
records
=
data
[
i
].
getRecords
();
for
(
let
j
=
0
;
j
<
records
.
length
;
j
++
)
{
if
(
records
[
j
].
getType
()
===
UDMF
.
Unified
DataType
.
PLAIN_TEXT
)
{
let
text
=
<
UDMF
.
PlainText
>
(
records
[
j
]);
if
(
records
[
j
].
getType
()
===
uniformTypeDescriptor
.
Uniform
DataType
.
PLAIN_TEXT
)
{
let
text
=
<
unifiedDataChannel
.
PlainText
>
(
records
[
j
]);
console
.
info
(
`
${
i
+
1
}
.
${
text
.
textContent
}
`
);
}
}
...
...
zh-cn/application-dev/database/unified-data-definition.md
浏览文件 @
a6c38cf3
...
...
@@ -5,6 +5,7 @@
为了构建OpenHarmony数据跨应用交互的标准定义,降低应用/业务数据交互成本,促进数据生态建设,UDMF提供了标准化的数据定义,统一定义了多种常用的数据类型。应用可以使用统一数据管理框架提供的接口创建和使用这些标准化数据类型。
例如跨应用拖拽场景,拖出方应用可以按照标准化数据定义将拖拽数据写入
[
拖拽事件
](
../reference/arkui-ts/ts-universal-events-drag-drop.md#dragevent说明
)
,拖入方应用从拖拽事件中读取拖拽数据并按照标准化数据定义进行数据的解析。这使得不同应用间的数据交互遵从相同的标准定义,避免了穷举式的数据类型适配,有效减少了跨应用数据交互的开发工作量。
## 标准化数据类型
...
...
@@ -39,9 +40,9 @@ UDMF提供的标准化数据类型主要包括以下几类:
## 接口说明
UDMF提供了统一数据对象UnifiedData,用于封装一组数据记录UnifiedRecord。数据记录UnifiedRecord则是对UDMF支持的数据内容的抽象定义,例如一条文本记录、一条图片记录等。数据记录中的数据内容类型对应为各数据类型Unif
ied
DataType。
UDMF提供了统一数据对象UnifiedData,用于封装一组数据记录UnifiedRecord。数据记录UnifiedRecord则是对UDMF支持的数据内容的抽象定义,例如一条文本记录、一条图片记录等。数据记录中的数据内容类型对应为各数据类型Unif
orm
DataType。
以下是常见的UDMF的接口说明,更多接口和具体说明,请见
[
统一数据管理框架
](
../reference/apis/js-apis-data-udmf
.md
)
。
以下是常见的UDMF的接口说明,更多接口和具体说明,请见
[
标准化数据通路
](
../reference/apis/js-apis-data-unifiedDataChannel.md
)
和
[
标准化数据定义与描述
](
../reference/apis/js-apis-data-uniformTypeDescriptor
.md
)
。
| 类名称 | 接口名称 | 描述 |
|---------------|-------------------|-----------------------------------------------------------------------------------------------|
...
...
@@ -55,17 +56,18 @@ UDMF提供了统一数据对象UnifiedData,用于封装一组数据记录Unifi
以一次创建统一数据对象(包含图片、纯文本两条数据记录)为例,说明开发步骤。
1.
导入
`@ohos.data.
UDMF
`
模块。
1.
导入
`@ohos.data.
unifiedDataChannel`
和
`@ohos.data.uniformTypeDescriptor
`
模块。
```
ts
import
UDMF
from
'
@ohos.data.UDMF
'
;
import
unifiedDataChannel
from
'
@ohos.data.unifiedDataChannel
'
;
import
uniformTypeDescriptor
from
'
@ohos.data.uniformTypeDescriptor
'
;
```
2.
创建图片数据记录,并初始化得到带有该数据记录的UnifiedData对象。
(1)创建图片数据记录。
```
ts
let
image
=
new
UDMF
.
Image
();
let
image
=
new
unifiedDataChannel
.
Image
();
```
(2)修改对象属性。
...
...
@@ -84,12 +86,12 @@ UDMF提供了统一数据对象UnifiedData,用于封装一组数据记录Unifi
(4)创建一个统一数据对象实例。
```
ts
let
unifiedData
=
new
UDMF
.
UnifiedData
(
image
);
let
unifiedData
=
new
unifiedDataChannel
.
UnifiedData
(
image
);
```
3.
创建纯文本数据类型记录,将其添加到刚才创建的UnifiedData对象。
```
ts
let
plainText
=
new
UDMF
.
PlainText
();
let
plainText
=
new
unifiedDataChannel
.
PlainText
();
plainText
.
textContent
=
'
this is textContent of plainText
'
;
plainText
.
abstract
=
'
abstract of plainText
'
;
plainText
.
details
=
{
...
...
@@ -110,13 +112,13 @@ UDMF提供了统一数据对象UnifiedData,用于封装一组数据记录Unifi
// 读取该数据记录的类型
let
type
=
records
[
i
].
getType
();
switch
(
type
)
{
case
UDMF
.
Unified
DataType
.
IMAGE
:
case
uniformTypeDescriptor
.
Uniform
DataType
.
IMAGE
:
// 转换得到原图片数据记录
let
image
=
<
UDMF
.
Image
>
(
records
[
i
]);
let
image
=
<
unifiedDataChannel
.
Image
>
(
records
[
i
]);
break
;
case
UDMF
.
Unified
DataType
.
PLAIN_TEXT
:
case
uniformTypeDescriptor
.
Uniform
DataType
.
PLAIN_TEXT
:
// 转换得到原文本数据记录
let
plainText
=
<
UDMF
.
PlainText
>
(
records
[
i
]);
let
plainText
=
<
unifiedDataChannel
.
PlainText
>
(
records
[
i
]);
break
;
default
:
break
;
...
...
zh-cn/application-dev/reference/apis/js-apis-data-u
dmf
.md
→
zh-cn/application-dev/reference/apis/js-apis-data-u
nifiedDataChannel
.md
浏览文件 @
a6c38cf3
# @ohos.data.
UDMF(统一数据管理框架
)
# @ohos.data.
unifiedDataChannel(标准化数据通路
)
本模块
提供数据统一管理的能力,包括对文本、图片等数据类型的标准化定义。通过调用对应数据类型的接口,应用程序可将各种数据封装为统一数据对象
。
本模块
为统一数据管理框架(Unified Data Management Framework,UDMF)的组成部分,针对多对多跨应用数据共享的不同业务场景提供了标准化的数据通路,提供了标准化的数据接入与读取接口。同时对文本、图片等数据类型提供了标准化定义,方便不同应用间进行数据交互,减少数据类型适配的工作量
。
> **说明:**
>
...
...
@@ -9,32 +9,9 @@
## 导入模块
```
js
import
UDMF
from
'
@ohos.data.UDMF
'
;
import
unifiedDataChannel
from
'
@ohos.data.unifiedDataChannel
'
;
```
## UnifiedDataType
[
统一数据对象
](
#unifieddata
)
中各
[
数据记录
](
#unifiedrecord
)
的数据类型。
**系统能力:**
SystemCapability.DistributedDataManager.UDMF.Core
| 名称 | 值 | 说明 |
|----------------------------|------------------------------|-----------|
| TEXT | 'Text' | 文本类型。 |
| PLAIN_TEXT | 'Text.PlainText' | 纯文本类型。 |
| HYPERLINK | 'Text.Hyperlink' | 超链接类型。 |
| HTML | 'Text.HTML' | 富文本类型。 |
| FILE | 'File' | 文件类型。 |
| IMAGE | 'File.Media.Image' | 图片类型。 |
| VIDEO | 'File.Media.Video' | 视频类型。 |
| AUDIO | 'File.Media.Audio' | 音频类型。 |
| FOLDER | 'File.Folder' | 文件夹类型。 |
| SYSTEM_DEFINED_RECORD | 'SystemDefinedType' | 系统服务数据类型。 |
| SYSTEM_DEFINED_FORM | 'SystemDefinedType.Form' | 卡片类型。 |
| SYSTEM_DEFINED_APP_ITEM | 'SystemDefinedType.AppItem' | 图标类型。 |
| SYSTEM_DEFINED_PIXEL_MAP | 'SystemDefinedType.PixelMap' | 二进制图片类型。 |
| APPLICATION_DEFINED_RECORD | 'ApplicationDefinedType' | 应用自定义类型。 |
## UnifiedData
表示UDMF统一数据对象,提供封装一组数据记录的方法。
...
...
@@ -58,9 +35,9 @@ constructor(record: UnifiedRecord)
**示例:**
```
js
let
text
=
new
UDMF
.
PlainText
();
let
text
=
new
unifiedDataChannel
.
PlainText
();
text
.
textContent
=
'
this is textContent of text
'
;
let
unifiedData
=
new
UDMF
.
UnifiedData
(
text
);
let
unifiedData
=
new
unifiedDataChannel
.
UnifiedData
(
text
);
```
### addRecord
...
...
@@ -80,11 +57,11 @@ addRecord(record: UnifiedRecord): void
**示例:**
```
js
let
text1
=
new
UDMF
.
PlainText
();
let
text1
=
new
unifiedDataChannel
.
PlainText
();
text1
.
textContent
=
'
this is textContent of text1
'
;
let
unifiedData
=
new
UDMF
.
UnifiedData
(
text1
);
let
unifiedData
=
new
unifiedDataChannel
.
UnifiedData
(
text1
);
let
text2
=
new
UDMF
.
PlainText
();
let
text2
=
new
unifiedDataChannel
.
PlainText
();
text2
.
textContent
=
'
this is textContent of text2
'
;
unifiedData
.
addRecord
(
text2
);
```
...
...
@@ -106,22 +83,24 @@ getRecords(): Array\<UnifiedRecord\>
**示例:**
```
js
let
text
=
new
UDMF
.
PlainText
();
import
uniformTypeDescriptor
from
'
@ohos.data.uniformTypeDescriptor
'
;
let
text
=
new
unifiedDataChannel
.
PlainText
();
text
.
textContent
=
'
this is textContent of text
'
;
let
unifiedData
=
new
UDMF
.
UnifiedData
(
text
);
let
unifiedData
=
new
unifiedDataChannel
.
UnifiedData
(
text
);
let
link
=
new
UDMF
.
Hyperlink
();
let
link
=
new
unifiedDataChannel
.
Hyperlink
();
link
.
url
=
'
www.XXX.com
'
;
unifiedData
.
addRecord
(
link
);
let
records
=
unifiedData
.
getRecords
();
for
(
let
i
=
0
;
i
<
records
.
length
;
i
++
)
{
let
record
=
records
[
i
];
if
(
record
.
getType
()
==
UDMF
.
Unified
DataType
.
PLAIN_TEXT
)
{
let
plainText
=
<
UDMF
.
PlainText
>
(
record
);
if
(
record
.
getType
()
==
uniformTypeDescriptor
.
Uniform
DataType
.
PLAIN_TEXT
)
{
let
plainText
=
<
unifiedDataChannel
.
PlainText
>
(
record
);
console
.
info
(
`textContent:
${
plainText
.
textContent
}
`
);
}
else
if
(
record
.
getType
()
==
UDMF
.
Unified
DataType
.
HYPERLINK
)
{
let
hyperlink
=
<
UDMF
.
Hyperlink
>
(
record
);
}
else
if
(
record
.
getType
()
==
uniformTypeDescriptor
.
Uniform
DataType
.
HYPERLINK
)
{
let
hyperlink
=
<
unifiedDataChannel
.
Hyperlink
>
(
record
);
console
.
info
(
`linkUrl:
${
hyperlink
.
url
}
`
);
}
}
...
...
@@ -135,7 +114,7 @@ for (let i = 0; i < records.length; i++) {
| 名称 | 类型 | 可读 | 可写 | 说明 |
| --------- | ------------------------- | ---- | ---- |-----------------------------------------------------------------------------------|
| summary | {
[
key: string]: number } | 是 | 否 | 是一个字典类型对象,key表示数据类型(见[Unif
iedDataType
](
#unified
datatype
)
),value为统一数据对象中该类型记录大小总和(单位:Byte)。 |
| summary | {
[
key: string]: number } | 是 | 否 | 是一个字典类型对象,key表示数据类型(见[Unif
ormDataType
](
js-apis-data-uniformTypeDescriptor.md#uniform
datatype
)
),value为统一数据对象中该类型记录大小总和(单位:Byte)。 |
| totalSize | number | 是 | 否 | 统一数据对象内记录总大小(单位:Byte)。 |
## UnifiedRecord
...
...
@@ -156,18 +135,20 @@ getType(): string
| 类型 | 说明 |
| ------ |------------------------------------------------------|
| string | 当前数据记录对应的具体数据类型,见
[
Unif
iedDataType
](
#unified
datatype
)
。|
| string | 当前数据记录对应的具体数据类型,见
[
Unif
ormDataType
](
js-apis-data-uniformTypeDescriptor.md#uniform
datatype
)
。|
**示例:**
```
js
let
text
=
new
UDMF
.
PlainText
();
import
uniformTypeDescriptor
from
'
@ohos.data.uniformTypeDescriptor
'
;
let
text
=
new
unifiedDataChannel
.
PlainText
();
text
.
textContent
=
'
this is textContent of text
'
;
let
unifiedData
=
new
UDMF
.
UnifiedData
(
text
);
let
unifiedData
=
new
unifiedDataChannel
.
UnifiedData
(
text
);
let
records
=
unifiedData
.
getRecords
();
if
(
records
[
0
].
getType
()
==
UDMF
.
Unified
DataType
.
PLAIN_TEXT
)
{
let
plainText
=
<
UDMF
.
PlainText
>
(
records
[
0
]);
if
(
records
[
0
].
getType
()
==
uniformTypeDescriptor
.
Uniform
DataType
.
PLAIN_TEXT
)
{
let
plainText
=
<
unifiedDataChannel
.
PlainText
>
(
records
[
0
]);
console
.
info
(
`textContent:
${
plainText
.
textContent
}
`
);
}
```
...
...
@@ -185,12 +166,12 @@ if (records[0].getType() == UDMF.UnifiedDataType.PLAIN_TEXT) {
**示例:**
```
js
let
text
=
new
UDMF
.
Text
();
let
text
=
new
unifiedDataChannel
.
Text
();
text
.
details
=
{
title
:
'
MyTitle
'
,
content
:
'
this is content
'
,
};
let
unifiedData
=
new
UDMF
.
UnifiedData
(
text
);
let
unifiedData
=
new
unifiedDataChannel
.
UnifiedData
(
text
);
```
## PlainText
...
...
@@ -207,7 +188,7 @@ let unifiedData = new UDMF.UnifiedData(text);
**示例:**
```
js
let
text
=
new
UDMF
.
PlainText
();
let
text
=
new
unifiedDataChannel
.
PlainText
();
text
.
textContent
=
'
this is textContent
'
;
text
.
abstract
=
'
this is abstract
'
;
```
...
...
@@ -226,7 +207,7 @@ text.abstract = 'this is abstract';
**示例:**
```
js
let
link
=
new
UDMF
.
Hyperlink
();
let
link
=
new
unifiedDataChannel
.
Hyperlink
();
link
.
url
=
'
www.XXX.com
'
;
link
.
description
=
'
this is description
'
;
```
...
...
@@ -245,7 +226,7 @@ HTML类型数据,是[Text](#text)的子类,用于描述超文本标记语言
**示例:**
```
js
let
html
=
new
UDMF
.
HTML
();
let
html
=
new
unifiedDataChannel
.
HTML
();
html
.
htmlContent
=
'
<div><p>标题</p></div>
'
;
html
.
plainContent
=
'
this is plainContent
'
;
```
...
...
@@ -264,7 +245,7 @@ File类型数据,是[UnifiedRecord](#unifiedrecord)的子类,也是文件类
**示例:**
```
js
let
file
=
new
UDMF
.
File
();
let
file
=
new
unifiedDataChannel
.
File
();
file
.
details
=
{
name
:
'
test
'
,
type
:
'
txt
'
,
...
...
@@ -285,7 +266,7 @@ file.uri = 'schema://com.samples.test/files/test.txt';
**示例:**
```
js
let
image
=
new
UDMF
.
Image
();
let
image
=
new
unifiedDataChannel
.
Image
();
image
.
imageUri
=
'
schema://com.samples.test/files/test.jpg
'
;
```
...
...
@@ -302,7 +283,7 @@ image.imageUri = 'schema://com.samples.test/files/test.jpg';
**示例:**
```
js
let
video
=
new
UDMF
.
Video
();
let
video
=
new
unifiedDataChannel
.
Video
();
video
.
videoUri
=
'
schema://com.samples.test/files/test.mp4
'
;
```
...
...
@@ -319,7 +300,7 @@ video.videoUri = 'schema://com.samples.test/files/test.mp4';
**示例:**
```
js
let
audio
=
new
UDMF
.
Audio
();
let
audio
=
new
unifiedDataChannel
.
Audio
();
audio
.
audioUri
=
'
schema://com.samples.test/files/test.mp3
'
;
```
...
...
@@ -336,7 +317,7 @@ audio.audioUri = 'schema://com.samples.test/files/test.mp3';
**示例:**
```
js
let
folder
=
new
UDMF
.
Folder
();
let
folder
=
new
unifiedDataChannel
.
Folder
();
folder
.
folderUri
=
'
schema://com.samples.test/files/folder/
'
;
```
...
...
@@ -353,14 +334,14 @@ SystemDefinedRecord是[UnifiedRecord](#unifiedrecord)的子类,也是OpenHarmo
**示例:**
```
js
let
sdr
=
new
UDMF
.
SystemDefinedRecord
();
let
sdr
=
new
unifiedDataChannel
.
SystemDefinedRecord
();
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
);
let
unifiedData
=
new
unifiedDataChannel
.
UnifiedData
(
sdr
);
```
## SystemDefinedForm
...
...
@@ -380,7 +361,7 @@ let unifiedData = new UDMF.UnifiedData(sdr);
**示例:**
```
js
let
form
=
new
UDMF
.
SystemDefinedForm
();
let
form
=
new
unifiedDataChannel
.
SystemDefinedForm
();
form
.
formId
=
123456
;
form
.
formName
=
'
MyFormName
'
;
form
.
bundleName
=
'
MyBundleName
'
;
...
...
@@ -392,7 +373,7 @@ form.details = {
formKey2
:
'
formValue
'
,
formKey3
:
u8Array
,
};
let
unifiedData
=
new
UDMF
.
UnifiedData
(
form
);
let
unifiedData
=
new
unifiedDataChannel
.
UnifiedData
(
form
);
```
## SystemDefinedAppItem
...
...
@@ -413,7 +394,7 @@ let unifiedData = new UDMF.UnifiedData(form);
**示例:**
```
js
let
appItem
=
new
UDMF
.
SystemDefinedAppItem
();
let
appItem
=
new
unifiedDataChannel
.
SystemDefinedAppItem
();
appItem
.
appId
=
'
MyAppId
'
;
appItem
.
appName
=
'
MyAppName
'
;
appItem
.
appIconId
=
'
MyAppIconId
'
;
...
...
@@ -426,7 +407,7 @@ appItem.details = {
appItemKey2
:
'
appItemValue
'
,
appItemKey3
:
u8Array
,
};
let
unifiedData
=
new
UDMF
.
UnifiedData
(
appItem
);
let
unifiedData
=
new
unifiedDataChannel
.
UnifiedData
(
appItem
);
```
## SystemDefinedPixelMap
...
...
@@ -454,9 +435,9 @@ image.createPixelMap(color, opts, (error, pixelmap) => {
let
arrayBuf
=
new
ArrayBuffer
(
pixelmap
.
getPixelBytesNumber
());
pixelmap
.
readPixelsToBuffer
(
arrayBuf
);
let
u8Array
=
new
Uint8Array
(
arrayBuf
);
let
sdpixel
=
new
UDMF
.
SystemDefinedPixelMap
();
let
sdpixel
=
new
unifiedDataChannel
.
SystemDefinedPixelMap
();
sdpixel
.
rawData
=
u8Array
;
let
unifiedData
=
new
UDMF
.
UnifiedData
(
sdpixel
);
let
unifiedData
=
new
unifiedDataChannel
.
UnifiedData
(
sdpixel
);
}
})
```
...
...
@@ -475,11 +456,11 @@ ApplicationDefinedRecord是[UnifiedRecord](#unifiedrecord)的子类,也是应
**示例:**
```
js
let
record
=
new
UDMF
.
ApplicationDefinedRecord
();
let
record
=
new
unifiedDataChannel
.
ApplicationDefinedRecord
();
let
u8Array
=
new
Uint8Array
([
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
]);
record
.
applicationDefinedType
=
'
ApplicationDefinedType
'
;
record
.
rawData
=
u8Array
;
let
unifiedData
=
new
UDMF
.
UnifiedData
(
record
);
let
unifiedData
=
new
unifiedDataChannel
.
UnifiedData
(
record
);
```
## Intention
...
...
@@ -502,11 +483,11 @@ UDMF提供的数据操作接口可选项,包含intention和key两个可选参
| 名称 | 类型 | 可读 | 可写 | 必填 | 说明 |
|-----------|-------------------------|----|----|----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| intention |
[
Intention
](
#intention
)
| 是 | 是 | 否 | 表示数据操作相关的数据通路类型。 |
| key | string | 是 | 是 | 否 | UDMF中数据对象的唯一标识符,可通过
[
insertData
](
#u
dmf
insertdata
)
接口的返回值获取。
<br>
由udmf:/、intention、bundleName和groupId四部分组成,以'/'连接,比如:udmf://DataHub/com.ohos.test/0123456789。
<br>
其中udmf:/固定,DataHub为对应枚举的取值,com.ohos.test为包名,0123456789为随机生成的groupId。 |
| key | string | 是 | 是 | 否 | UDMF中数据对象的唯一标识符,可通过
[
insertData
](
#u
nifieddatachannel
insertdata
)
接口的返回值获取。
<br>
由udmf:/、intention、bundleName和groupId四部分组成,以'/'连接,比如:udmf://DataHub/com.ohos.test/0123456789。
<br>
其中udmf:/固定,DataHub为对应枚举的取值,com.ohos.test为包名,0123456789为随机生成的groupId。 |
##
UDMF
.insertData
##
unifiedDataChannel
.insertData
insertData(options: Options, data: UnifiedData, callback: AsyncCallback
<
string
>
): void
...
...
@@ -525,17 +506,17 @@ insertData(options: Options, data: UnifiedData, callback: AsyncCallback<strin
**示例:**
```
ts
import
UDMF
from
'
@ohos.data.UDMF
'
;
import
unifiedDataChannel
from
'
@ohos.data.unifiedDataChannel
'
;
let
plainText
=
new
UDMF
.
PlainText
();
let
plainText
=
new
unifiedDataChannel
.
PlainText
();
plainText
.
textContent
=
'
hello world!
'
;
let
unifiedData
=
new
UDMF
.
UnifiedData
(
plainText
);
let
unifiedData
=
new
unifiedDataChannel
.
UnifiedData
(
plainText
);
let
options
=
{
intention
:
UDMF
.
Intention
.
DATA_HUB
intention
:
unifiedDataChannel
.
Intention
.
DATA_HUB
}
try
{
UDMF
.
insertData
(
options
,
unifiedData
,
(
err
,
data
)
=>
{
unifiedDataChannel
.
insertData
(
options
,
unifiedData
,
(
err
,
data
)
=>
{
if
(
err
===
undefined
)
{
console
.
info
(
`Succeeded in inserting data. key =
${
data
}
`
);
}
else
{
...
...
@@ -548,7 +529,7 @@ try {
```
##
UDMF
.insertData
##
unifiedDataChannel
.insertData
insertData(options: Options, data: UnifiedData): Promise
<
string
>
...
...
@@ -572,17 +553,17 @@ insertData(options: Options, data: UnifiedData): Promise<string>
**示例:**
```
ts
import
UDMF
from
'
@ohos.data.UDMF
'
;
import
unifiedDataChannel
from
'
@ohos.data.unifiedDataChannel
'
;
let
plainText
=
new
UDMF
.
PlainText
();
let
plainText
=
new
unifiedDataChannel
.
PlainText
();
plainText
.
textContent
=
'
hello world!
'
;
let
unifiedData
=
new
UDMF
.
UnifiedData
(
plainText
);
let
unifiedData
=
new
unifiedDataChannel
.
UnifiedData
(
plainText
);
let
options
=
{
intention
:
UDMF
.
Intention
.
DATA_HUB
intention
:
unifiedDataChannel
.
Intention
.
DATA_HUB
}
try
{
UDMF
.
insertData
(
options
,
unifiedData
).
then
((
data
)
=>
{
unifiedDataChannel
.
insertData
(
options
,
unifiedData
).
then
((
data
)
=>
{
console
.
info
(
`Succeeded in inserting data. key =
${
data
}
`
);
}).
catch
((
err
)
=>
{
console
.
error
(
`Failed to insert data. code is
${
err
.
code
}
,message is
${
err
.
message
}
`
);
...
...
@@ -592,7 +573,7 @@ try {
}
```
##
UDMF
.updateData
##
unifiedDataChannel
.updateData
updateData(options: Options, data: UnifiedData, callback: AsyncCallback
<
void
>
): void
...
...
@@ -611,18 +592,18 @@ updateData(options: Options, data: UnifiedData, callback: AsyncCallback<void&
**示例:**
```
ts
import
UDMF
from
'
@ohos.data.UDMF
'
;
import
unifiedDataChannel
from
'
@ohos.data.unifiedDataChannel
'
;
let
plainText
=
new
UDMF
.
PlainText
();
let
plainText
=
new
unifiedDataChannel
.
PlainText
();
plainText
.
textContent
=
'
hello world!
'
;
let
unifiedData
=
new
UDMF
.
UnifiedData
(
plainText
);
let
unifiedData
=
new
unifiedDataChannel
.
UnifiedData
(
plainText
);
let
options
=
{
key
:
'
udmf://DataHub/com.ohos.test/0123456789
'
};
try
{
UDMF
.
updateData
(
options
,
unifiedData
,
(
err
)
=>
{
unifiedDataChannel
.
updateData
(
options
,
unifiedData
,
(
err
)
=>
{
if
(
err
===
undefined
)
{
console
.
info
(
'
Succeeded in updating data.
'
);
}
else
{
...
...
@@ -634,7 +615,7 @@ try {
}
```
##
UDMF
.updateData
##
unifiedDataChannel
.updateData
updateData(options: Options, data: UnifiedData): Promise
<
void
>
...
...
@@ -658,18 +639,18 @@ updateData(options: Options, data: UnifiedData): Promise<void>
**示例:**
```
ts
import
UDMF
from
'
@ohos.data.UDMF
'
;
import
unifiedDataChannel
from
'
@ohos.data.unifiedDataChannel
'
;
let
plainText
=
new
UDMF
.
PlainText
();
let
plainText
=
new
unifiedDataChannel
.
PlainText
();
plainText
.
textContent
=
'
hello world!
'
;
let
unifiedData
=
new
UDMF
.
UnifiedData
(
plainText
);
let
unifiedData
=
new
unifiedDataChannel
.
UnifiedData
(
plainText
);
let
options
=
{
key
:
'
udmf://DataHub/com.ohos.test/0123456789
'
};
try
{
UDMF
.
updateData
(
options
,
unifiedData
).
then
(()
=>
{
unifiedDataChannel
.
updateData
(
options
,
unifiedData
).
then
(()
=>
{
console
.
info
(
'
Succeeded in updating data.
'
);
}).
catch
((
err
)
=>
{
console
.
error
(
`Failed to update data. code is
${
err
.
code
}
,message is
${
err
.
message
}
`
);
...
...
@@ -679,7 +660,7 @@ try {
}
```
##
UDMF
.queryData
##
unifiedDataChannel
.queryData
queryData(options: Options, callback: AsyncCallback
<
Array
<
UnifiedData
>>
): void
...
...
@@ -697,21 +678,22 @@ queryData(options: Options, callback: AsyncCallback<Array<UnifiedData>&
**示例:**
```
ts
import
UDMF
from
'
@ohos.data.UDMF
'
;
import
unifiedDataChannel
from
'
@ohos.data.unifiedDataChannel
'
;
import
uniformTypeDescriptor
from
'
@ohos.data.uniformTypeDescriptor
'
;
let
options
=
{
intention
:
UDMF
.
Intention
.
DATA_HUB
intention
:
unifiedDataChannel
.
Intention
.
DATA_HUB
};
try
{
UDMF
.
queryData
(
options
,
(
err
,
data
)
=>
{
unifiedDataChannel
.
queryData
(
options
,
(
err
,
data
)
=>
{
if
(
err
===
undefined
)
{
console
.
info
(
`Succeeded in querying data. size =
${
data
.
length
}
`
);
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
let
records
=
data
[
i
].
getRecords
();
for
(
let
j
=
0
;
j
<
records
.
length
;
j
++
)
{
if
(
records
[
j
].
getType
()
===
UDMF
.
Unified
DataType
.
PLAIN_TEXT
)
{
let
text
=
<
UDMF
.
PlainText
>
(
records
[
j
]);
if
(
records
[
j
].
getType
()
===
uniformTypeDescriptor
.
Uniform
DataType
.
PLAIN_TEXT
)
{
let
text
=
<
unifiedDataChannel
.
PlainText
>
(
records
[
j
]);
console
.
info
(
`
${
i
+
1
}
.
${
text
.
textContent
}
`
);
}
}
...
...
@@ -725,7 +707,7 @@ try {
}
```
##
UDMF
.queryData
##
unifiedDataChannel
.queryData
queryData(options: Options): Promise
<
Array
<
UnifiedData
>>
...
...
@@ -748,20 +730,21 @@ queryData(options: Options): Promise<Array<UnifiedData>>
**示例:**
```
ts
import
UDMF
from
'
@ohos.data.UDMF
'
;
import
unifiedDataChannel
from
'
@ohos.data.unifiedDataChannel
'
;
import
uniformTypeDescriptor
from
'
@ohos.data.uniformTypeDescriptor
'
;
let
options
=
{
key
:
'
udmf://DataHub/com.ohos.test/0123456789
'
};
try
{
UDMF
.
queryData
(
options
).
then
((
data
)
=>
{
unifiedDataChannel
.
queryData
(
options
).
then
((
data
)
=>
{
console
.
info
(
`Succeeded in querying data. size =
${
data
.
length
}
`
);
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
let
records
=
data
[
i
].
getRecords
();
for
(
let
j
=
0
;
j
<
records
.
length
;
j
++
)
{
if
(
records
[
j
].
getType
()
===
UDMF
.
Unified
DataType
.
PLAIN_TEXT
)
{
let
text
=
<
UDMF
.
PlainText
>
(
records
[
j
]);
if
(
records
[
j
].
getType
()
===
uniformTypeDescriptor
.
Uniform
DataType
.
PLAIN_TEXT
)
{
let
text
=
<
unifiedDataChannel
.
PlainText
>
(
records
[
j
]);
console
.
info
(
`
${
i
+
1
}
.
${
text
.
textContent
}
`
);
}
}
...
...
@@ -774,7 +757,7 @@ try {
}
```
##
UDMF
.deleteData
##
unifiedDataChannel
.deleteData
deleteData(options: Options, callback: AsyncCallback
<
Array
<
UnifiedData
>>
): void
...
...
@@ -792,21 +775,22 @@ deleteData(options: Options, callback: AsyncCallback<Array<UnifiedData>
**示例:**
```
ts
import
UDMF
from
'
@ohos.data.UDMF
'
;
import
unifiedDataChannel
from
'
@ohos.data.unifiedDataChannel
'
;
import
uniformTypeDescriptor
from
'
@ohos.data.uniformTypeDescriptor
'
;
let
options
=
{
intention
:
UDMF
.
Intention
.
DATA_HUB
intention
:
unifiedDataChannel
.
Intention
.
DATA_HUB
};
try
{
UDMF
.
deleteData
(
options
,
(
err
,
data
)
=>
{
unifiedDataChannel
.
deleteData
(
options
,
(
err
,
data
)
=>
{
if
(
err
===
undefined
)
{
console
.
info
(
`Succeeded in deleting data. size =
${
data
.
length
}
`
);
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
let
records
=
data
[
i
].
getRecords
();
for
(
let
j
=
0
;
j
<
records
.
length
;
j
++
)
{
if
(
records
[
j
].
getType
()
===
UDMF
.
Unified
DataType
.
PLAIN_TEXT
)
{
let
text
=
<
UDMF
.
PlainText
>
(
records
[
j
]);
if
(
records
[
j
].
getType
()
===
uniformTypeDescriptor
.
Uniform
DataType
.
PLAIN_TEXT
)
{
let
text
=
<
unifiedDataChannel
.
PlainText
>
(
records
[
j
]);
console
.
info
(
`
${
i
+
1
}
.
${
text
.
textContent
}
`
);
}
}
...
...
@@ -820,7 +804,7 @@ try {
}
```
##
UDMF
.deleteData
##
unifiedDataChannel
.deleteData
deleteData(options: Options): Promise
<
Array
<
UnifiedData
>>
...
...
@@ -843,20 +827,21 @@ deleteData(options: Options): Promise<Array<UnifiedData>>
**示例:**
```
ts
import
UDMF
from
'
@ohos.data.UDMF
'
;
import
unifiedDataChannel
from
'
@ohos.data.unifiedDataChannel
'
;
import
uniformTypeDescriptor
from
'
@ohos.data.uniformTypeDescriptor
'
;
let
options
=
{
key
:
'
udmf://DataHub/com.ohos.test/0123456789
'
};
try
{
UDMF
.
deleteData
(
options
).
then
((
data
)
=>
{
unifiedDataChannel
.
deleteData
(
options
).
then
((
data
)
=>
{
console
.
info
(
`Succeeded in deleting data. size =
${
data
.
length
}
`
);
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
let
records
=
data
[
i
].
getRecords
();
for
(
let
j
=
0
;
j
<
records
.
length
;
j
++
)
{
if
(
records
[
j
].
getType
()
===
UDMF
.
Unified
DataType
.
PLAIN_TEXT
)
{
let
text
=
<
UDMF
.
PlainText
>
(
records
[
j
]);
if
(
records
[
j
].
getType
()
===
uniformTypeDescriptor
.
Uniform
DataType
.
PLAIN_TEXT
)
{
let
text
=
<
unifiedDataChannel
.
PlainText
>
(
records
[
j
]);
console
.
info
(
`
${
i
+
1
}
.
${
text
.
textContent
}
`
);
}
}
...
...
zh-cn/application-dev/reference/apis/js-apis-data-uniformTypeDescriptor.md
0 → 100644
浏览文件 @
a6c38cf3
# @ohos.data.uniformTypeDescriptor(标准化数据定义与描述)
本模块描述OpenHarmony标准化数据类型的抽象定义。
> **说明:**
>
> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```
js
import
uniformTypeDescriptor
from
'
@ohos.data.uniformTypeDescriptor
'
;
```
## UniformDataType
OpenHarmony标准化数据类型的枚举定义。
**系统能力:**
SystemCapability.DistributedDataManager.UDMF.Core
| 名称 | 值 | 说明 |
|----------------------------|------------------------------|-----------|
| TEXT | 'general.text' | 文本类型。 |
| PLAIN_TEXT | 'general.plain-text' | 纯文本类型。 |
| HYPERLINK | 'general.hyperlink' | 超链接类型。 |
| HTML | 'general.html' | 富文本类型。 |
| FILE | 'general.file' | 文件类型。 |
| IMAGE | 'general.image' | 图片类型。 |
| VIDEO | 'general.video' | 视频类型。 |
| AUDIO | 'general.audio' | 音频类型。 |
| FOLDER | 'general.folder' | 文件夹类型。 |
| OPENHARMONY_FORM | 'openharmony.form' | 卡片类型。 |
| OPENHARMONY_APP_ITEM | 'openharmony.app-item' | 图标类型。 |
| OPENHARMONY_PIXEL_MAP | 'openharmony.pixel-map' | 二进制图片类型。 |
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录