Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
56cc7260
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看板
提交
56cc7260
编写于
7月 18, 2023
作者:
D
dboy190
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix img show
Signed-off-by:
N
dboy190
<
dulei1@huawei.com
>
上级
19516f7c
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
27 addition
and
36 deletion
+27
-36
zh-cn/application-dev/database/data-share-overview.md
zh-cn/application-dev/database/data-share-overview.md
+3
-3
zh-cn/application-dev/database/unified-data-channels.md
zh-cn/application-dev/database/unified-data-channels.md
+20
-25
zh-cn/application-dev/database/unified-data-definition.md
zh-cn/application-dev/database/unified-data-definition.md
+2
-6
zh-cn/application-dev/reference/apis/js-apis-data-udmf.md
zh-cn/application-dev/reference/apis/js-apis-data-udmf.md
+2
-2
未找到文件。
zh-cn/application-dev/database/data-share-overview.md
浏览文件 @
56cc7260
...
...
@@ -64,11 +64,11 @@ DataShare实现跨应用数据共享有两种方式:
## 多对多跨应用数据共享
区别于一对多数据共享只有一个数据提供方,当多个应用之间需要相互进行数据共享时,即多对多的跨应用数据共享场景下,对于数据的定义、流通和权限管理等是十分必要的。
统一数据管理框架(Unified Data Management Framework, UDMF
)
即提供一种新的数据共享与交互方式,可以实现多对多跨应用数据共享,具体相关实现可见下文。
统一数据管理框架(Unified Data Management Framework, UDMF
)
即提供一种新的数据共享与交互方式,可以实现多对多跨应用数据共享,具体相关实现可见下文。
### 具体实现
[
通过标准化数据通路实现数据共享
](
unified-data-channels.md
)
应用可以根据UDMF
提供的标准化接口,将数据写入UDMF不同的数据共享通道,并提供多应用进行读取。写入UDMF中的数据依据应用定义的权限、数据通道
定义的权限以及整个UDMF框架定义的权限管理逻辑进行管理,
写入通
道中的数据的生命周期的管理也遵循上述逻辑。这样离散在各个应用的碎片化数据可以在UDMF的不同通道
中形成聚合效应,提升开发者跨应用数据协同的效率,同时提升用户的数据体验。
应用可以根据UDMF
标准化数据通路提供的数据接入与读取接口,将符合标准化数据定义的数据写入UDMF不同的数据共享通路,并提供多应用进行读取。写入UDMF中的数据依据应用定义的权限、数据通路
定义的权限以及整个UDMF框架定义的权限管理逻辑进行管理,
写入通
路中的数据的生命周期的管理也遵循上述逻辑。这样离散在各个应用的碎片化数据可以在UDMF的不同通路
中形成聚合效应,提升开发者跨应用数据协同的效率,同时提升用户的数据体验。
zh-cn/application-dev/database/unified-data-channels.md
浏览文件 @
56cc7260
...
...
@@ -3,10 +3,9 @@
## 场景介绍
在多对多跨应用数据共享的场景下,需要提供一条数据通路能接入多个不同应用的数据并共享给其他应用进行读取,同时对通道中数据的访问权限和生命周期
进行统一的管理。
在多对多跨应用数据共享的场景下,需要提供一条数据通路能够接入多个不同应用的数据并共享给其他应用进行读取。
UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化的数据通路,提供了标准化的数据接入与读取接口
,并按照一定策略管理通道中数据的访问权限和生命周期
。
UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化的数据通路,提供了标准化的数据接入与读取接口。
## 标准化数据通路的定义和实现
...
...
@@ -17,23 +16,19 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
并且可以通过UDMF提供的更新和删除接口对已经存入UDMF数据通路的数据进行更新和删除操作。在完成必要的权限校验后,
目标应用(数据访问方)可以通过UDMF提供的读取接口进行数据的访问,数据被读取后,UDMF会统一对数据的生命周期进行管理。
统一数据对象UnifiedData在UDMF数据通路中具有全局唯一URI标识,其定义为udmf://inten
sion/bundleName/groupName/gui
d,其中各组成部分的含义分别为:
统一数据对象UnifiedData在UDMF数据通路中具有全局唯一URI标识,其定义为udmf://inten
tion/bundleName/groupI
d,其中各组成部分的含义分别为:
**udmf:**
协议名,表示使用UDMF提供的数据通路。
+
**udmf:**
协议名,表示使用UDMF提供的数据通路。
**intension:**
通道
分类,对应不同的业务场景。
+
**intention:**
通路
分类,对应不同的业务场景。
**bundleName:**
数据来源应用的包名称。
+
**bundleName:**
数据来源应用的包名称。
**groupName
:**
分组名称,支持批量数据分组管理。
+
**groupId
:**
分组名称,支持批量数据分组管理。
**guid:**
系统生成的数据id,全局唯一。
当前UDMF中的跨应用数据共享通路有:
**公共数据通路**
当前UDMF中的跨应用数据共享通路有:
-
**公共数据通路**
应用共享的公用数据共享通路,应用均可写入和读取数据,对应的Intention枚举类型为DATA_HUB。
**公共数据通路**
:应用共享的公用数据共享通路,应用均可写入和读取数据,对应的Intention枚举类型为DATA_HUB。
## 接口说明
...
...
@@ -42,16 +37,16 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
| 接口名称 | 描述 |
|----------------------------------------------------------------------------------------|---------------------------------------------|
| insertData(options: Options, data: UnifiedData, callback: AsyncCallback
<string>
): void | 将数据写入UDMF的公共
存储
中,并生成数据的唯一标识符,使用callback异步回调。 |
| updateData(options: Options, data: UnifiedData, callback: AsyncCallback
<void>
): void | 更新已写入UDMF的公共
存储
的数据,使用callback异步回调。 |
| queryData(options: Options, callback: AsyncCallback
<Array
<
UnifiedData
>
>): void | 查询UDMF公共
存储
的数据,使用callback异步回调。 |
| deleteData(options: Options, callback: AsyncCallback
<Array
<
UnifiedData
>
>): void | 删除UDMF公共
存储
的数据,返回删除的数据集,使用callback异步回调。 |
| insertData(options: Options, data: UnifiedData, callback: AsyncCallback
<string>
): void | 将数据写入UDMF的公共
数据通路
中,并生成数据的唯一标识符,使用callback异步回调。 |
| updateData(options: Options, data: UnifiedData, callback: AsyncCallback
<void>
): void | 更新已写入UDMF的公共
数据通路
的数据,使用callback异步回调。 |
| queryData(options: Options, callback: AsyncCallback
<Array
<
UnifiedData
>
>): void | 查询UDMF公共
数据通路
的数据,使用callback异步回调。 |
| deleteData(options: Options, callback: AsyncCallback
<Array
<
UnifiedData
>
>): void | 删除UDMF公共
数据通路
的数据,返回删除的数据集,使用callback异步回调。 |
## 开发步骤
以一次多对多数据共享的过程为例说明开发步骤,数据提供方可以通过UMDF提供的接口将数据写入公共
存储通道
,并对其进行更新和删除操作。数据访问方可以通过UDMF提供的查询接口获取数据
提供方共享的数据。
示例代码均采用Callback形式,Promise形式请见
[
@ohos.data.UDMF(统一数据管理框架)
](
../reference/apis/js-apis-data-udmf.md
)
。
以一次多对多数据共享的过程为例说明开发步骤,数据提供方可以通过UMDF提供的接口将数据写入公共
数据通路
,并对其进行更新和删除操作。数据访问方可以通过UDMF提供的查询接口获取数据
提供方共享的数据。
### 数据提供方
...
...
@@ -60,7 +55,7 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
```
ts
import
UDMF
from
'
@ohos.data.UDMF
'
;
```
2.
创建一个统一数据对象并插入到UDMF的公共
存储
中。
2.
创建一个统一数据对象并插入到UDMF的公共
数据通路
中。
```
ts
let
plainText
=
new
UDMF
.
PlainText
();
...
...
@@ -86,7 +81,7 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
```
ts
let
plainText
=
new
UDMF
.
PlainText
();
plainText
.
textContent
=
'
hello world
!
'
;
plainText
.
textContent
=
'
How are you
!
'
;
let
unifiedData
=
new
UDMF
.
UnifiedData
(
plainText
);
let
options
=
{
...
...
@@ -98,14 +93,14 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
if
(
err
===
undefined
)
{
console
.
info
(
'
Succeeded in updating data.
'
);
}
else
{
console
.
error
(
'
Failed to update data. code is ${err.code},message is ${err.message} `);
console
.
error
(
`
Failed to update data. code is
${
err
.
code
}
,message is
${
err
.
message
}
`
);
}
});
}
catch
(
e
)
{
console
.
error
(
`Update data throws an exception. code is
${
e
.
code
}
,message is
${
e
.
message
}
`
);
}
```
4.
删除存储在UDMF公共
存储
中的统一数据对象。
4.
删除存储在UDMF公共
数据通路
中的统一数据对象。
```
ts
let
options
=
{
...
...
@@ -141,7 +136,7 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
```
ts
import
UDMF
from
'
@ohos.data.UDMF
'
;
```
2.
查询存储在UDMF公共
存储
中的统一数据对象。
2.
查询存储在UDMF公共
数据通路
中的统一数据对象。
```
ts
let
options
=
{
...
...
zh-cn/application-dev/database/unified-data-definition.md
浏览文件 @
56cc7260
...
...
@@ -20,13 +20,13 @@ UDMF提供的标准化数据类型主要包括以下几类:
![
UDMF_TEXT
](
figures/udmf_type_Text.png
)
**系统相关数据类型
(System Defined Type, SDT):**
与具体的平台/操作系统绑定,如Form(UI卡片信息)、AppItem(App描述信息)、PixelMap(缩略图格式)
等,该类数据可以实现系统/平台内的跨应用流转,如图3所示。
**系统相关数据类型
(System Defined Type, SDT):**
与具体的平台/操作系统绑定,如Form(UI卡片信息)、AppItem(App描述信息)、PixelMap(缩略图格式)
等,该类数据可以实现系统/平台内的跨应用流转,如图3所示。
**图3**
UDMF SDT数据类型示意图
![
UDMF_SDT
](
figures/udmf_type_SDT.png
)
**应用自定义数据类型
(App Defined Type, ADT)
:**
单个应用自定义的数据,该类数据可以实现应用内的跨平台流转,如图4所示为例,应用可自定义MyFile类型文件格式在应用生态内部使用。
**应用自定义数据类型
(App Defined Type, ADT)
:**
单个应用自定义的数据,该类数据可以实现应用内的跨平台流转,如图4所示为例,应用可自定义MyFile类型文件格式在应用生态内部使用。
**图4**
UDMF ADT数据类型示意图
...
...
@@ -119,10 +119,6 @@ UDMF提供了统一数据对象UnifiedData,用于封装一组数据记录Unifi
// 转换得到原文本数据记录
let
plainText
=
<
UDMF
.
PlainText
>
(
records
[
i
]);
break
;
case
UDMF
.
UnifiedDataType
.
SYSTEM_DEFINED_PIXEL_MAP
:
// 转换得到原二进制图片数据记录
let
sdPixelMap
=
<
UDMF
.
SystemDefinedPixelMap
>
(
records
[
i
]);
break
;
default
:
break
;
}
...
...
zh-cn/application-dev/reference/apis/js-apis-data-udmf.md
浏览文件 @
56cc7260
...
...
@@ -490,7 +490,7 @@ let unifiedData = new UDMF.UnifiedData(record);
| 名称 | 值 | 说明 |
|----------|-----------|---------|
| DATA_HUB | 'DataHub' | 公共数据通
道
。 |
| DATA_HUB | 'DataHub' | 公共数据通
路
。 |
## Options
...
...
@@ -626,7 +626,7 @@ try {
if
(
err
===
undefined
)
{
console
.
info
(
'
Succeeded in updating data.
'
);
}
else
{
console
.
error
(
'
Failed to update data. code is ${err.code},message is ${err.message} `);
console
.
error
(
`
Failed to update data. code is
${
err
.
code
}
,message is
${
err
.
message
}
`
);
}
});
}
catch
(
e
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录