提交 a6c38cf3 编写于 作者: W wangkai

UDMF接口拆分

Signed-off-by: Nwangkai <wangkai424@huawei.com>
上级 873194ec
......@@ -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.UnifiedDataType.PLAIN_TEXT) {
let text = <UDMF.PlainText>(records[j]);
if (records[j].getType() === uniformTypeDescriptor.UniformDataType.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.UnifiedDataType.PLAIN_TEXT) {
let text = <UDMF.PlainText>(records[j]);
if (records[j].getType() === uniformTypeDescriptor.UniformDataType.PLAIN_TEXT) {
let text = <unifiedDataChannel.PlainText>(records[j]);
console.info(`${i + 1}.${text.textContent}`);
}
}
......
......@@ -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支持的数据内容的抽象定义,例如一条文本记录、一条图片记录等。数据记录中的数据内容类型对应为各数据类型UnifiedDataType。
UDMF提供了统一数据对象UnifiedData,用于封装一组数据记录UnifiedRecord。数据记录UnifiedRecord则是对UDMF支持的数据内容的抽象定义,例如一条文本记录、一条图片记录等。数据记录中的数据内容类型对应为各数据类型UniformDataType。
以下是常见的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.UnifiedDataType.IMAGE:
case uniformTypeDescriptor.UniformDataType.IMAGE:
// 转换得到原图片数据记录
let image = <UDMF.Image>(records[i]);
let image = <unifiedDataChannel.Image>(records[i]);
break;
case UDMF.UnifiedDataType.PLAIN_TEXT:
case uniformTypeDescriptor.UniformDataType.PLAIN_TEXT:
// 转换得到原文本数据记录
let plainText = <UDMF.PlainText>(records[i]);
let plainText = <unifiedDataChannel.PlainText>(records[i]);
break;
default:
break;
......
# @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.
先完成此消息的编辑!
想要评论请 注册