提交 56cc7260 编写于 作者: D dboy190

fix img show

Signed-off-by: Ndboy190 <dulei1@huawei.com>
上级 19516f7c
...@@ -64,11 +64,11 @@ DataShare实现跨应用数据共享有两种方式: ...@@ -64,11 +64,11 @@ DataShare实现跨应用数据共享有两种方式:
## 多对多跨应用数据共享 ## 多对多跨应用数据共享
区别于一对多数据共享只有一个数据提供方,当多个应用之间需要相互进行数据共享时,即多对多的跨应用数据共享场景下,对于数据的定义、流通和权限管理等是十分必要的。 区别于一对多数据共享只有一个数据提供方,当多个应用之间需要相互进行数据共享时,即多对多的跨应用数据共享场景下,对于数据的定义、流通和权限管理等是十分必要的。
统一数据管理框架(Unified Data Management Framework, UDMF)即提供一种新的数据共享与交互方式,可以实现多对多跨应用数据共享,具体相关实现可见下文。 统一数据管理框架(Unified Data Management Framework, UDMF即提供一种新的数据共享与交互方式,可以实现多对多跨应用数据共享,具体相关实现可见下文。
### 具体实现 ### 具体实现
[通过标准化数据通路实现数据共享](unified-data-channels.md) [通过标准化数据通路实现数据共享](unified-data-channels.md)
应用可以根据UDMF提供的标准化接口,将数据写入UDMF不同的数据共享通道,并提供多应用进行读取。写入UDMF中的数据依据应用定义的权限、数据通道定义的权限以及整个UDMF框架定义的权限管理逻辑进行管理, 应用可以根据UDMF标准化数据通路提供的数据接入与读取接口,将符合标准化数据定义的数据写入UDMF不同的数据共享通路,并提供多应用进行读取。写入UDMF中的数据依据应用定义的权限、数据通路定义的权限以及整个UDMF框架定义的权限管理逻辑进行管理,
写入通道中的数据的生命周期的管理也遵循上述逻辑。这样离散在各个应用的碎片化数据可以在UDMF的不同通道中形成聚合效应,提升开发者跨应用数据协同的效率,同时提升用户的数据体验。 写入通路中的数据的生命周期的管理也遵循上述逻辑。这样离散在各个应用的碎片化数据可以在UDMF的不同通路中形成聚合效应,提升开发者跨应用数据协同的效率,同时提升用户的数据体验。
...@@ -3,10 +3,9 @@ ...@@ -3,10 +3,9 @@
## 场景介绍 ## 场景介绍
在多对多跨应用数据共享的场景下,需要提供一条数据通路能接入多个不同应用的数据并共享给其他应用进行读取,同时对通道中数据的访问权限和生命周期 在多对多跨应用数据共享的场景下,需要提供一条数据通路能够接入多个不同应用的数据并共享给其他应用进行读取。
进行统一的管理。
UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化的数据通路,提供了标准化的数据接入与读取接口,并按照一定策略管理通道中数据的访问权限和生命周期 UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化的数据通路,提供了标准化的数据接入与读取接口。
## 标准化数据通路的定义和实现 ## 标准化数据通路的定义和实现
...@@ -17,23 +16,19 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化 ...@@ -17,23 +16,19 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
并且可以通过UDMF提供的更新和删除接口对已经存入UDMF数据通路的数据进行更新和删除操作。在完成必要的权限校验后, 并且可以通过UDMF提供的更新和删除接口对已经存入UDMF数据通路的数据进行更新和删除操作。在完成必要的权限校验后,
目标应用(数据访问方)可以通过UDMF提供的读取接口进行数据的访问,数据被读取后,UDMF会统一对数据的生命周期进行管理。 目标应用(数据访问方)可以通过UDMF提供的读取接口进行数据的访问,数据被读取后,UDMF会统一对数据的生命周期进行管理。
统一数据对象UnifiedData在UDMF数据通路中具有全局唯一URI标识,其定义为udmf://intension/bundleName/groupName/guid,其中各组成部分的含义分别为: 统一数据对象UnifiedData在UDMF数据通路中具有全局唯一URI标识,其定义为udmf://intention/bundleName/groupId,其中各组成部分的含义分别为:
**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针对多对多跨应用数据共享的不同业务场景提供了标准化 ...@@ -42,16 +37,16 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
| 接口名称 | 描述 | | 接口名称 | 描述 |
|----------------------------------------------------------------------------------------|---------------------------------------------| |----------------------------------------------------------------------------------------|---------------------------------------------|
| insertData(options: Options, data: UnifiedData, callback: AsyncCallback<string>): 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异步回调。 | | updateData(options: Options, data: UnifiedData, callback: AsyncCallback<void>): void | 更新已写入UDMF的公共数据通路的数据,使用callback异步回调。 |
| queryData(options: Options, callback: AsyncCallback<Array<UnifiedData>>): void | 查询UDMF公共存储的数据,使用callback异步回调。 | | queryData(options: Options, callback: AsyncCallback<Array<UnifiedData>>): void | 查询UDMF公共数据通路的数据,使用callback异步回调。 |
| deleteData(options: Options, callback: AsyncCallback<Array<UnifiedData>>): void | 删除UDMF公共存储的数据,返回删除的数据集,使用callback异步回调。 | | deleteData(options: Options, callback: AsyncCallback<Array<UnifiedData>>): void | 删除UDMF公共数据通路的数据,返回删除的数据集,使用callback异步回调。 |
## 开发步骤 ## 开发步骤
以一次多对多数据共享的过程为例说明开发步骤,数据提供方可以通过UMDF提供的接口将数据写入公共存储通道,并对其进行更新和删除操作。数据访问方可以通过UDMF提供的查询接口获取数据 以一次多对多数据共享的过程为例说明开发步骤,数据提供方可以通过UMDF提供的接口将数据写入公共数据通路,并对其进行更新和删除操作。数据访问方可以通过UDMF提供的查询接口获取数据
提供方共享的数据。示例代码均采用Callback形式,Promise形式请见[ @ohos.data.UDMF(统一数据管理框架)](../reference/apis/js-apis-data-udmf.md) 提供方共享的数据。
### 数据提供方 ### 数据提供方
...@@ -60,7 +55,7 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化 ...@@ -60,7 +55,7 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
```ts ```ts
import UDMF from '@ohos.data.UDMF'; import UDMF from '@ohos.data.UDMF';
``` ```
2. 创建一个统一数据对象并插入到UDMF的公共存储中。 2. 创建一个统一数据对象并插入到UDMF的公共数据通路中。
```ts ```ts
let plainText = new UDMF.PlainText(); let plainText = new UDMF.PlainText();
...@@ -86,7 +81,7 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化 ...@@ -86,7 +81,7 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
```ts ```ts
let plainText = new UDMF.PlainText(); let plainText = new UDMF.PlainText();
plainText.textContent = 'hello world!'; plainText.textContent = 'How are you!';
let unifiedData = new UDMF.UnifiedData(plainText); let unifiedData = new UDMF.UnifiedData(plainText);
let options = { let options = {
...@@ -98,14 +93,14 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化 ...@@ -98,14 +93,14 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
if (err === undefined) { if (err === undefined) {
console.info('Succeeded in updating data.'); console.info('Succeeded in updating data.');
} else { } 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) { } catch(e) {
console.error(`Update data throws an exception. code is ${e.code},message is ${e.message} `); console.error(`Update data throws an exception. code is ${e.code},message is ${e.message} `);
} }
``` ```
4. 删除存储在UDMF公共存储中的统一数据对象。 4. 删除存储在UDMF公共数据通路中的统一数据对象。
```ts ```ts
let options = { let options = {
...@@ -141,7 +136,7 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化 ...@@ -141,7 +136,7 @@ UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化
```ts ```ts
import UDMF from '@ohos.data.UDMF'; import UDMF from '@ohos.data.UDMF';
``` ```
2. 查询存储在UDMF公共存储中的统一数据对象。 2. 查询存储在UDMF公共数据通路中的统一数据对象。
```ts ```ts
let options = { let options = {
......
...@@ -20,13 +20,13 @@ UDMF提供的标准化数据类型主要包括以下几类: ...@@ -20,13 +20,13 @@ UDMF提供的标准化数据类型主要包括以下几类:
![UDMF_TEXT](figures/udmf_type_Text.png) ![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数据类型示意图 **图3** UDMF SDT数据类型示意图
![UDMF_SDT](figures/udmf_type_SDT.png) ![UDMF_SDT](figures/udmf_type_SDT.png)
**应用自定义数据类型(App Defined Type, ADT):** 单个应用自定义的数据,该类数据可以实现应用内的跨平台流转,如图4所示为例,应用可自定义MyFile类型文件格式在应用生态内部使用。 **应用自定义数据类型(App Defined Type, ADT):** 单个应用自定义的数据,该类数据可以实现应用内的跨平台流转,如图4所示为例,应用可自定义MyFile类型文件格式在应用生态内部使用。
**图4** UDMF ADT数据类型示意图 **图4** UDMF ADT数据类型示意图
...@@ -119,10 +119,6 @@ UDMF提供了统一数据对象UnifiedData,用于封装一组数据记录Unifi ...@@ -119,10 +119,6 @@ UDMF提供了统一数据对象UnifiedData,用于封装一组数据记录Unifi
// 转换得到原文本数据记录 // 转换得到原文本数据记录
let plainText = <UDMF.PlainText>(records[i]); let plainText = <UDMF.PlainText>(records[i]);
break; break;
case UDMF.UnifiedDataType.SYSTEM_DEFINED_PIXEL_MAP:
// 转换得到原二进制图片数据记录
let sdPixelMap = <UDMF.SystemDefinedPixelMap>(records[i]);
break;
default: default:
break; break;
} }
......
...@@ -490,7 +490,7 @@ let unifiedData = new UDMF.UnifiedData(record); ...@@ -490,7 +490,7 @@ let unifiedData = new UDMF.UnifiedData(record);
| 名称 | 值 | 说明 | | 名称 | 值 | 说明 |
|----------|-----------|---------| |----------|-----------|---------|
| DATA_HUB | 'DataHub' | 公共数据通。 | | DATA_HUB | 'DataHub' | 公共数据通。 |
## Options ## Options
...@@ -626,7 +626,7 @@ try { ...@@ -626,7 +626,7 @@ try {
if (err === undefined) { if (err === undefined) {
console.info('Succeeded in updating data.'); console.info('Succeeded in updating data.');
} else { } 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) { } catch(e) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册