未验证 提交 3f64aaf1 编写于 作者: O openharmony_ci 提交者: Gitee

!2606 接口一致性问题及内源演练问题修改

Merge pull request !2606 from zengyawen/master
......@@ -11,15 +11,17 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
**表1** 分布式数据服务关键API功能介绍
| 功能分类 | 接口名称 | 描述 |
| -------- | -------- | -------- |
| 分布式数据库创建。 | createKVManager(config:&nbsp;KVManagerConfig,&nbsp;callback:&nbsp;AsyncCallback&lt;KVManager&gt;):&nbsp;void<br/>createKVManager(config:&nbsp;KVManagerConfig):&nbsp;Promise&lt;KVManager&gt; | 创建一个KVManager对象实例,用于管理数据库对象。 |
| getKVStore&lt;T&nbsp;extends&nbsp;KVStore&gt;(storeId:&nbsp;string,&nbsp;options:&nbsp;Options,&nbsp;callback:&nbsp;AsyncCallback&lt;T&gt;):&nbsp;void<br/>getKVStore&lt;T&nbsp;extends&nbsp;KVStore&gt;(storeId:&nbsp;string,&nbsp;options:&nbsp;Options):&nbsp;Promise&lt;T&gt; | 指定Options和storeId,创建并获取KVStore数据库。 |
| 分布式数据增、删、改、查。 | put(key:&nbsp;string,&nbsp;value:&nbsp;Uint8Array&nbsp;\|&nbsp;string&nbsp;\|&nbsp;number&nbsp;\|&nbsp;boolean,&nbsp;callback:&nbsp;AsyncCallback&lt;void&gt;):&nbsp;void<br/>put(key:&nbsp;string,&nbsp;value:&nbsp;Uint8Array&nbsp;\|&nbsp;string&nbsp;\|&nbsp;number&nbsp;\|&nbsp;boolean):&nbsp;Promise&lt;void&gt; | 插入和更新数据。 |
| delete(key:&nbsp;string,&nbsp;callback:&nbsp;AsyncCallback&lt;void&gt;):&nbsp;void<br/>delete(key:&nbsp;string):&nbsp;Promise&lt;void&gt; | 删除数据。 |
| get(key:&nbsp;string,&nbsp;callback:&nbsp;AsyncCallback&lt;Uint8Array&nbsp;\|&nbsp;string&nbsp;\|&nbsp;boolean&nbsp;\|&nbsp;number&gt;):&nbsp;void<br/>get(key:&nbsp;string):&nbsp;Promise&lt;Uint8Array&nbsp;\|&nbsp;string&nbsp;\|&nbsp;boolean&nbsp;\|&nbsp;number&gt; | 查询数据。 |
| 订阅分布式数据变化。 | on(event:&nbsp;'dataChange',&nbsp;type:&nbsp;SubscribeType,&nbsp;observer:&nbsp;Callback&lt;ChangeNotification&gt;):&nbsp;void<br/>on(event:&nbsp;'syncComplete',&nbsp;syncCallback:&nbsp;Callback&lt;Array&lt;[string,&nbsp;number]&gt;&gt;):&nbsp;void | 订阅数据库中数据的变化。 |
| 分布式数据同步。 | sync(deviceIdList:&nbsp;string[],&nbsp;mode:&nbsp;SyncMode,&nbsp;allowedDelayMs?:&nbsp;number):&nbsp;void | 在手动模式下,触发数据库同步。 |
| 功能分类 | 接口名称 | 描述 |
| -------------------------- | ------------------------------------------------------------ | ----------------------------------------------- |
| 分布式数据库创建。 | createKVManager(config:&nbsp;KVManagerConfig,&nbsp;callback:&nbsp;AsyncCallback&lt;KVManager&gt;):&nbsp;void<br/>createKVManager(config:&nbsp;KVManagerConfig):&nbsp;Promise&lt;KVManager> | 创建一个KVManager对象实例,用于管理数据库对象。 |
| 分布式数据库创建。 | getKVStore&lt;T&nbsp;extends&nbsp;KVStore&gt;(storeId:&nbsp;string,&nbsp;options:&nbsp;Options,&nbsp;callback:&nbsp;AsyncCallback&lt;T&gt;):&nbsp;void<br/>getKVStore&lt;T&nbsp;extends&nbsp;KVStore&gt;(storeId:&nbsp;string,&nbsp;options:&nbsp;Options):&nbsp;Promise&lt;T&gt; | 指定Options和storeId,创建并获取KVStore数据库。 |
| 分布式数据增、删、改、查。 | put(key:&nbsp;string,&nbsp;value:&nbsp;Uint8Array&nbsp;\|&nbsp;string&nbsp;\|&nbsp;number&nbsp;\|&nbsp;boolean,&nbsp;callback:&nbsp;AsyncCallback&lt;void&gt;):&nbsp;void<br/>put(key:&nbsp;string,&nbsp;value:&nbsp;Uint8Array&nbsp;\|&nbsp;string&nbsp;\|&nbsp;number&nbsp;\|&nbsp;boolean):&nbsp;Promise&lt;void> | 插入和更新数据。 |
| 分布式数据增、删、改、查。 | delete(key:&nbsp;string,&nbsp;callback:&nbsp;AsyncCallback&lt;void&gt;):&nbsp;void<br/>delete(key:&nbsp;string):&nbsp;Promise&lt;void> | 删除数据。 |
| 分布式数据增、删、改、查。 | get(key:&nbsp;string,&nbsp;callback:&nbsp;AsyncCallback&lt;Uint8Array&nbsp;\|&nbsp;string&nbsp;\|&nbsp;boolean&nbsp;\|&nbsp;number&gt;):&nbsp;void<br/>get(key:&nbsp;string):&nbsp;Promise&lt;Uint8Array&nbsp;\|&nbsp;string&nbsp;\|&nbsp;boolean&nbsp;\|&nbsp;number> | 查询数据。 |
| 订阅分布式数据变化。 | on(event:&nbsp;'dataChange',&nbsp;type:&nbsp;SubscribeType,&nbsp;observer:&nbsp;Callback&lt;ChangeNotification&gt;):&nbsp;void<br/>on(event:&nbsp;'syncComplete',&nbsp;syncCallback:&nbsp;Callback&lt;Array&lt;[string,&nbsp;number]&gt;&gt;):&nbsp;void | 订阅数据库中数据的变化。 |
| 分布式数据同步。 | sync(deviceIdList:&nbsp;string[],&nbsp;mode:&nbsp;SyncMode,&nbsp;allowedDelayMs?:&nbsp;number):&nbsp;void | 在手动模式下,触发数据库同步。 |
## 开发步骤
......
......@@ -7,7 +7,7 @@
## 接口说明
**数据库的创建和删除**
### 数据库的创建和删除
关系型数据库提供了数据库创建方式,以及对应的删除接口,涉及的API如下所示。
......@@ -20,46 +20,58 @@
|deleteRdbStore(name:&nbsp;string,&nbsp;callback:&nbsp;AsyncCallback&lt;void&gt;):&nbsp;void | 删除数据库,结果以callback形式返回。<br/>-&nbsp;name:数据库名称。<br/>-&nbsp;callback:指定callback回调函数。如果数据库已删除,则为true;否则返回false。 |
| deleteRdbStore(name:&nbsp;string):&nbsp;Promise&lt;void&gt; | 使用指定的数据库文件配置删除数据库,结果以Promise形式返回。<br/>-&nbsp;name:数据库名称。 |
**数据库的增删改查**
### 数据库的增删改查
关系型数据库提供对本地数据增删改查操作的能力,相关API如下所示。
- **新增**
关系型数据库提供了插入数据的接口,通过ValuesBucket输入要存储的数据,通过返回值判断是否插入成功,插入成功时返回最新插入数据所在的行号,失败时则返回-1。
关系型数据库提供了插入数据的接口,通过ValuesBucket输入要存储的数据,通过返回值判断是否插入成功,插入成功时返回最新插入数据所在的行号,失败时则返回-1。
**表2** 数据库插入API
| 类名 | 接口名 | 描述 |
| -------- | -------- | -------- |
| -------- | -------- | -------- |
| RdbStore | insert(name:&nbsp;string,&nbsp;values:&nbsp;ValuesBucket,&nbsp;callback:&nbsp;AsyncCallback&lt;number&gt;):void | 向目标表中插入一行数据,结果以callback形式返回。<br/>-&nbsp;name:指定的目标表名。<br/>-&nbsp;values:表示要插入到表中的数据行。<br/>-&nbsp;callback:指定callback回调函数。如果操作成功,返回行ID;否则返回-1。 |
| RdbStore | insert(name:&nbsp;string,&nbsp;values:&nbsp;ValuesBucket):&nbsp;Promise&lt;number&gt; | 向目标表中插入一行数据,结果以Promise形式返回。<br/>-&nbsp;name:指定的目标表名。<br/>-&nbsp;values:表示要插入到表中的数据行。 |
- **更新**
调用更新接口,传入要更新的数据,并通过RdbPredicates指定更新条件。该接口的返回值表示更新操作影响的行数。如果更新失败,则返回0。
调用更新接口,传入要更新的数据,并通过RdbPredicates指定更新条件。该接口的返回值表示更新操作影响的行数。如果更新失败,则返回0。
**表3** 数据库更新API
| 类名 | 接口名 | 描述 |
| -------- | -------- | -------- |
| -------- | -------- | -------- |
| RdbStore | update(values:&nbsp;ValuesBucket,&nbsp;rdbPredicates:&nbsp;RdbPredicates,&nbsp;callback:&nbsp;AsyncCallback&lt;number&gt;):void | 根据RdbPredicates的指定实例对象更新数据库中的数据,结果以callback形式返回。<br/>-&nbsp;values:以ValuesBucket存储的要更新的数据。<br/>-&nbsp;rdbPredicates:表示RdbPredicates的实例对象指定的更新条件。<br/>-&nbsp;callback:指定的callback回调方法。返回受影响的行数。 |
| RdbStore | update(values:&nbsp;ValuesBucket,&nbsp;rdbPredicates:&nbsp;RdbPredicates):&nbsp;Promise | 根据RdbPredicates的指定实例对象更新数据库中的数据,结果以Promise形式返回。<br/>-&nbsp;values:以ValuesBucket存储的要更新的数据。<br/>-&nbsp;rdbPredicates:表示RdbPredicates的实例对象指定的更新条件。 |
- **删除**
调用删除接口,通过RdbPredicates指定删除条件。该接口的返回值表示删除的数据行数,可根据此值判断是否删除成功。如果删除失败,则返回0。
调用删除接口,通过RdbPredicates指定删除条件。该接口的返回值表示删除的数据行数,可根据此值判断是否删除成功。如果删除失败,则返回0。
**表4** 数据库删除API
| 类名 | 接口名 | 描述 |
| -------- | -------- | -------- |
| -------- | -------- | -------- |
| RdbStore | delete(rdbPredicates:&nbsp;RdbPredicates,&nbsp;callback:&nbsp;AsyncCallback&lt;number&gt;):void | 根据rdbPredicates的指定实例对象从数据库中删除数据,结果以callback形式返回。<br/>-&nbsp;rdbPredicates:RdbPredicates的实例对象指定的删除条件。<br/>-&nbsp;callback:指定callback回调函数。返回受影响的行数。 |
| RdbStore | delete(rdbPredicates:&nbsp;RdbPredicates):&nbsp;Promise | 根据rdbPredicates的指定实例对象从数据库中删除数据,结果以Promise形式返回。<br/>-&nbsp;rdbPredicates:RdbPredicates的实例对象指定的删除条件。 |
- **查询**
关系型数据库提供了两种查询数据的方式:
- 直接调用查询接口。使用该接口,会将包含查询条件的谓词自动拼接成完整的SQL语句进行查询操作,无需用户传入原生的SQL语句。
- 执行原生的SQL语句进行查询操作。
**表5** 数据库查询API
| 类名 | 接口名 | 描述 |
......@@ -69,7 +81,7 @@
| RdbStore | querySql(sql:&nbsp;string,&nbsp;bindArgs:&nbsp;Array&lt;ValueType&gt;,&nbsp;callback:&nbsp;AsyncCallback&lt;ResultSet&gt;):void | 根据指定SQL语句查询数据库中的数据,结果以callback形式返回。<br/>-&nbsp;sql:指定要查询的SQL语句。<br/>-&nbsp;bindArgs:SQL语句中参数的值。<br/>-&nbsp;callback:指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
| RdbStore | querySql(sql:&nbsp;string,&nbsp;bindArgs?:&nbsp;Array&lt;ValueType&gt;):Promise&lt;ResultSet&gt; | 根据指定SQL语句查询数据库中的数据,结果以Promise形式返回。<br/>-&nbsp;sql:指定要查询的SQL语句。<br/>-&nbsp;bindArgs:SQL语句中参数的值。 |
**数据库谓词的使用**
### 数据库谓词的使用
关系型数据库提供了用于设置数据库操作条件的谓词RdbPredicates,该类确定RDB中条件表达式的值是true还是false。
......@@ -108,12 +120,12 @@
| RdbPredicates | in(field:&nbsp;string,&nbsp;value:&nbsp;Array&lt;ValueType&gt;):&nbsp;RdbPredicates | 配置RdbPredicates以匹配数据字段为ValueType数组且值在给定范围内的指定字段。<br/>-&nbsp;field:数据库表中的列名。<br/>-&nbsp;value:以ValueType型数组形式指定的要匹配的值。<br/>-&nbsp;RdbPredicates:返回与指定字段匹配的谓词。 |
| RdbPredicates | notIn(field:&nbsp;string,&nbsp;value:&nbsp;Array&lt;ValueType&gt;):&nbsp;RdbPredicates | 将RdbPredicates配置为匹配数据字段为ValueType且值超出给定范围的指定字段。<br/>-&nbsp;field:数据库表中的列名。<br/>-&nbsp;value:以ValueType型数组形式指定的要匹配的值。<br/>-&nbsp;RdbPredicates:返回与指定字段匹配的谓词。 |
**查询结果集的使用**
### 查询结果集的使用
关系型数据库提供了查询返回的结果集ResultSet,其指向查询结果中的一行数据,供用户对查询结果进行遍历和访问。ResultSet对外API如下所示。
> ![icon-notice.gif](public_sys-resources/icon-notice.gif) **须知:**
> **注:结果集使用完后,请一定要调用close方法显式关闭。**
> **结果集使用完后,请一定要调用close方法显式关闭。**
**表7** 结果集API
......@@ -135,49 +147,48 @@
**设置分布式列表。**
### 设置分布式列表
用户可以对当前数据库中的列表设置为分布式列表。
**设置分布式列表**
**表9** 设置分布式列表
**表8** 设置分布式列表
| 类名 | 接口名 | 描述 |
| -------- | -------- | -------- |
| RdbStore | setDistributedTables(tables: Array<string>, callback: AsyncCallback<void>): void;| 设置分布式列表,结果以callback形式返回。<br/>-&nbsp;tables:要设置的分布式列表表名。<br/>-&nbsp;callback:指定callback回调函数。 |
| RdbStore | setDistributedTables(tables: Array<string>): Promise<void>; | 设置分布式列表,结果以Promise形式返回。<br/>-&nbsp;tables:要设置的分布式列表表名。 |
**根据本地表名获取指定远程设备的分布式表名**
**根据本地表名获取指定远程设备的分布式表名**
用户根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名。
**表10** 根据本地表名获取指定远程设备的分布式表名
**表9** 根据本地表名获取指定远程设备的分布式表名
| 类名 | 接口名 | 描述 |
| -------- | -------- | -------- |
| RdbStore | obtainDistributedTableName(device: string, table: string, callback: AsyncCallback<string>): void; | 根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名, 结果以callbck形式返回。<br/>-&nbsp;device:远程设备。<br/>-&nbsp;table:本地表名。<br/>-&nbsp;callback:指定的callback回调函数,如果操作成功,返回远程设备的分布式表名。 |
| RdbStore | obtainDistributedTableName(device: string, table: string): Promise<string>; | 根据本地表名获取指定远程设备的分布式表名。在查询远程设备数据库时,需要使用分布式表名,结果以Promise形式返回。<br/>-&nbsp;device:远程设备。<br/>-&nbsp;table:本地表名。 |
**在设备之间同步数据**
**在设备之间同步数据**
**表11** 在设备之间同步数据
**表10** 在设备之间同步数据
| 类名 | 接口名 | 描述 |
| -------- | -------- | -------- |
| RdbStore | sync(mode: SyncMode, predicates: RdbPredicates, callback: AsyncCallback<Array<[string, number]>>): void;| 在设备之间同步数据,结果以callback形式返回。<br/>-&nbsp;mode:指同步模式。SYNC_MODE_PUSH 表示数据从本地设备推送到远程设备;SYNC_MODE_PULL 表示数据从远程设备拉至本地设备。<br/>-&nbsp;predicates:约束同步数据和设备。<br/>-&nbsp;callback:指定的callback回调函数,string:设备ID;number:每个设备同步状态,0表示成功,其他值表示失败。 |
| RdbStore | sync(mode: SyncMode, predicates: RdbPredicates): Promise<Array<[string, number]>>;| 在设备之间同步数据,结果以Promise形式返回。<br/>-&nbsp;mode:指同步模式。SYNC_MODE_PUSH 表示数据从本地设备推送到远程设备;SYNC_MODE_PULL 表示数据从远程设备拉至本地设备。<br/>-&nbsp;predicates:约束同步数据和设备。 |
**注册数据库的观察者**
**注册数据库的观察者。**
**表12** 注册数据库的观察者
**表11** 注册数据库的观察者
| 类名 | 接口名 | 描述 |
| -------- | -------- | -------- |
| RdbStore |on(event: 'dataChange', type: SubscribeType, observer: Callback<Array<string>>): void;| 注册数据库的观察者。当分布式数据库中的数据发生更改时,将调用回调。<br/>-&nbsp;type:指在{@code SubscribeType}中定义的订阅类型;SUBSCRIBE_TYPE_REMOTE 订阅远程数据更改。<br/>-&nbsp;observer:指分布式数据库中数据更改事件的观察者。 |
**从数据库中删除指定类型的指定观察者**
**从数据库中删除指定类型的指定观察者**
**表13** 从数据库中删除指定类型的指定观察者
**表12** 从数据库中删除指定类型的指定观察者
| 类名 | 接口名 | 描述 |
| -------- | -------- | -------- |
......
......@@ -30,8 +30,8 @@
## 默认配置
- 如果不指定数据库的日志模式,那么系统默认日志方式是WAL(Write Ahead Log)模式。
- 如果不指定数据库的落盘模式,那么系统默认落盘方式是FULL模式。
- 系统默认日志方式是WAL(Write Ahead Log)模式。
- 系统默认落盘方式是FULL模式。
- OpenHarmony数据库使用的共享内存默认大小是2MB。
## 约束与限制
......
......@@ -26,7 +26,6 @@ createKVManager(config: KVManagerConfig, callback: AsyncCallback&lt;KVManager&gt
| config | [KVManagerConfig](#kvmanagerconfig) | 是 | 提供KVManager实例的配置信息,包括调用方的包名和用户信息。 |
| callback | AsyncCallback&lt;[KVManager](#kvmanager)&gt; | 是 | KVManager实例创建时调用的回调,返回KVManager对象实例。 |
**示例**
let kvManager;
......@@ -573,7 +572,7 @@ off(event: 'distributedDataServiceDie', deathCallback?: Callback&lt;void&gt;): v
| autoSync | boolean | 否 |设置数据库文件是否自动同步,默认不自动同步。 |
| kvStoreType | [KVStoreType](#kvstoretype) | 否 |设置要创建的数据库类型,默认为多设备协同数据库。 |
| securityLevel | [SecurityLevel](#securitylevel) | 否 |设置数据库安全级别,默认不设置安全级别。 |
| schema | [schema](#Schema<sup>8+</sup>) | 否 | 设置定义存储在数据库中的值。 |
| schema<sup>8+</sup> | [Schema](#schema8) | 否 | 设置定义存储在数据库中的值。 |
## KVStoreType
......@@ -629,7 +628,7 @@ KVStore常量。
| 名称 | 类型 | 说明 |
| --- | ---- | ----------------------- |
| root<sup>8+</sup> | [FieldNode](#FieldNode) | 表示json根对象 |
| root<sup>8+</sup> | [FieldNode](#fieldnode8) | 表示json根对象 |
| indexes<sup>8+</sup> | Array<string> | 表示json类型的字符串数组。 |
| mode<sup>8+</sup> | number | 表示Schema的模式。 |
| skip<sup>8+</sup> | number | Schema的跳跃大小。 |
......@@ -651,7 +650,7 @@ constructor()
| 名称 | 类型 | 说明 |
| --- | ---- | ----------------------- |
| nullable<sup>8+</sup> | boolean | 表示数据库字段是否可以为空。 |
| default<sup>8+</sup> | string | 表示fieldnode的默认值。 |
| default<sup>8+</sup> | string | 表示Fieldnode的默认值。 |
| type<sup>8+</sup> | number | 表示值。 |
### constructor<sup>8+</sup> ###
......@@ -664,9 +663,9 @@ constructor(name: string)
**参数**
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| name | string | 是 | FieldNode的值。
| 参数名 | 参数类型 | 必填 | 说明 |
| ------ | -------- | ---- | --------------- |
| name | string | 是 | FieldNode的值。 |
### appendChild<sup>8+</sup> ###
......@@ -680,7 +679,7 @@ appendChild(child: FieldNode): boolean
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| child | [FieldNode](#FieldNode) | 是 | 要附加的域节点。 |
| child | [FieldNode](#fieldnode8) | 是 | 要附加的域节点。 |
**返回值**
......@@ -2985,7 +2984,7 @@ get(key: string, callback: AsyncCallback&lt;Uint8Array | string | boolean | numb
### get
get(key: string): Promise&lt;Uint8Array | string | boolean | number&gt
get(key: string): Promise&lt;Uint8Array | string | boolean | number>
获取指定键的值,并通过Promise方式返回,此方法为异步方法。
......@@ -3252,7 +3251,7 @@ getResultSet(keyPrefix: string, callback: AsyncCallback&lt;KvStoreResultSet&gt;)
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| keyPrefix |string | 是 |表示要匹配的键前缀。 |
| callback |AsyncCallback&lt;[KvStoreResultSet](#kvstoreresultset8)&gt; | 是 |表示要匹配的键前缀。 |
| callback |AsyncCallback&lt;[KvStoreResultSet](#kvstoreresultset8)&gt; | 是 |回调函数。 |
**示例**
......@@ -5075,7 +5074,7 @@ sync(deviceIdList: string[], mode: SyncMode, allowedDelayMs?: number): void
### on<sup>8+</sup> ###
on(event: 'syncComplete', syncCallback: Callback&lt;Arrary&lt;[string, number]&gt;&gt;): void
on(event: 'syncComplete', syncCallback: Callback&lt;Array&lt;[string, number]&gt;&gt;): void
订阅同步完成事件回调通知,该方法为同步方法。
......@@ -5086,9 +5085,10 @@ on(event: 'syncComplete', syncCallback: Callback&lt;Arrary&lt;[string, number]&g
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| event |'syncComplete' | 是 |同步完成时触发的事件名。 |
| syncCallback |Callback<Arrary&lt;<[string, number]&gt; | 是 |用于向调用方发送同步结果的回调。 |
| syncCallback |Callback<Array&lt;<[string, number]&gt; | 是 |用于向调用方发送同步结果的回调。 |
**示例**
```
const KEY_TEST_FLOAT_ELEMENT = 'key_test_float';
const VALUE_TEST_FLOAT_ELEMENT = 321.12;
......@@ -5120,7 +5120,7 @@ off(event: 'syncComplete', syncCallback?: Callback&lt;Array&lt;[string, number]&
| 参数名 | 参数类型 | 必填 | 说明 |
| ----- | ------ | ---- | ----------------------- |
| event |'syncComplete' | 是 |同步完成时触发的事件名。 |
| syncCallback |Callback<Arrary&lt;[string, number]&gt;&gt; | 否 |用于向调用方发送同步结果的回调。 |
| syncCallback |Callback<Array&lt;[string, number]&gt;&gt; | 否 |用于向调用方发送同步结果的回调。 |
**示例**
......
......@@ -445,7 +445,7 @@ on(type: 'progress', callback:(receivedSize: number, totalSize: number) =&gt; vo
```
request.download({ url: 'https://xxxx/xxxx.hap' }, (err, data)=> {
if (err) {
console.error('Fail to request download. Cause:' + err);
console.error('Failed to request download. Cause:' + err);
return;
}
downloadTask = data;
......@@ -485,7 +485,7 @@ off(type: 'progress', callback?: (receivedSize: number, totalSize: number) =&gt;
```
request.download({ url: 'https://xxxx/xxxx.hap' }, (err, data)=> {
if (err) {
console.error('Fail to request download. Cause:' + err);
console.error('Failed to request download. Cause:' + err);
return;
}
downloadTask = data;
......@@ -497,11 +497,11 @@ off(type: 'progress', callback?: (receivedSize: number, totalSize: number) =&gt;
```
### on('complete')<sup>7+</sup>
### on('complete'|'pause'|'remove')<sup>7+</sup>
on(type: 'complete', callback:() =&gt; void): void
on(type: 'complete'|'pause'|'remove', callback:() =&gt; void): void
开启下载任务完成监听,异步方法,使用callback形式返回。
开启下载任务相关的监听,异步方法,使用callback形式返回。
**需要权限**:ohos.permission.INTERNET
......@@ -510,15 +510,15 @@ on(type: 'complete', callback:() =&gt; void): void
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 订阅的事件类型,取值为'complete'(下载任务完成)。 |
| callback | function | 是 | 下载完成的回调函数。 |
| type | string | 是 | 订阅的事件类型<br>- 取值为'complete',表示下载任务完成;<br/>- 取值为'pause',表示下载任务暂停;<br/>- 取值为'remove',表示下载任务移除。 |
| callback | function | 是 | 回调函数。 |
- 示例:
```
request.download({ url: 'https://xxxx/xxxx.hap' }, (err, data)=> {
if (err) {
console.error('Fail to request download. Cause:' + err);
console.error('Failed to request download. Cause:' + err);
return;
}
downloadTask= data;
......@@ -530,11 +530,11 @@ on(type: 'complete', callback:() =&gt; void): void
```
### off('complete')<sup>7+</sup>
### off('complete'|'pause'|'remove')<sup>7+</sup>
off(type: 'complete', callback?:() =&gt; void): void
off(type: 'complete'|'pause'|'remove', callback?:() =&gt; void): void
取消下载任务完成监听,异步方法,使用callback形式返回。
取消下载任务相关的监听,异步方法,使用callback形式返回。
**需要权限**:ohos.permission.INTERNET
......@@ -543,15 +543,15 @@ off(type: 'complete', callback?:() =&gt; void): void
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 取消订阅的事件类型,取值为'complete'(下载任务完成)。 |
| callback | function | 否 | 取消下载完成的回调函数。 |
| type | string | 是 | 取消订阅的事件类型<br/>- 取值为'complete',表示下载任务完成;<br/>- 取值为'pause',表示下载任务暂停;<br/>- 取值为'remove',表示下载任务移除。 |
| callback | function | 否 | 回调函数。 |
- 示例:
```
request.download({ url: 'https://xxxx/xxxx.hap' }, (err, data)=> {
if (err) {
console.error('Fail to request download. Cause:' + JSON.stringify(err));
console.error('Failed to request download. Cause:' + JSON.stringify(err));
return;
}
downloadTask = data;
......@@ -590,7 +590,7 @@ on(type: 'fail', callback: (err: number) =&gt; void): void
```
request.download({ url: 'https://xxxx/xxxx.hap' }, (err, data)=> {
if (err) {
console.error('Fail to request download. Cause:' + err);
console.error('Failed to request download. Cause:' + err);
return;
}
downloadTask = data;
......@@ -629,7 +629,7 @@ off(type: 'fail', callback?: (err: number) =&gt; void): void
```
request.download({ url: 'https://xxxx/xxxx.hap' }, (err, data)=> {
if (err) {
console.error('Fail to request download. Cause:' + err);
console.error('Failed to request download. Cause:' + err);
return;
}
downloadTask = data;
......@@ -641,137 +641,6 @@ off(type: 'fail', callback?: (err: number) =&gt; void): void
```
### on('pause')<sup>7+</sup>
on(type: 'pause', callback:() =&gt; void): void
开启下载任务暂停监听,异步方法,使用callback形式返回结果。
**需要权限**:ohos.permission.INTERNET
**系统能力**: SystemCapability.MiscServices.Download
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 订阅的事件类型,取值为'pause'(下载暂停)。 |
| callback | function | 是 | 下载暂停的回调函数。 |
- 示例:
```
request.download({ url: 'https://xxxx/xxxx.hap' }, (err, data)=> {
if (err) {
console.error('Failed to pause the download task. Cause:' + err);
return;
}
downloadTask = data;
downloadTask.on('pause', function callBack() {
console.info('Download task paused.');
}
);
});
```
### off('pause')<sup>7+</sup>
off(type: 'pause', callback?:() =&gt; void): void
取消下载任务暂停监听,异步方法,使用callback形式返回结果。
**需要权限**:ohos.permission.INTERNET
**系统能力**: SystemCapability.MiscServices.Download
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 取消订阅的事件类型,取值为'pause'(下载暂停)。 |
| callback | function | 否 | 取消下载暂停的回调函数。 |
- 示例:
```
request.download({ url: 'https://xxxx/xxxx.hap' }, (err, data)=> {
if (err) {
console.error('Failed to pause the download task. Cause:' + err);
return;
}
downloadTask = data;
downloadTask.off('pause', function callBack() {
console.info('Download task paused.');
}
);
});
```
### on('remove')<sup>7+</sup>
on(type: 'remove', callback:() =&gt; void): void
开启下载任务移除监听,异步方法,使用callback形式返回结果。
**需要权限**:ohos.permission.INTERNET
**系统能力**: SystemCapability.MiscServices.Download
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 订阅的事件类型,取值为'remove'(下载任务移除)。 |
| callback | function | 是 | 下载移除的回调函数。 |
- 示例:
```
request.download({ url: 'https://xxxx/xxxx.hap' }, (err, data)=> {
if (err) {
console.error('Failed to remove the download task. Cause:' + err);
return;
}
downloadTask = data;
downloadTask.on('remove', function callBack() {
console.info('Download task removed.');
}
);
});
```
### off('remove')<sup>7+</sup>
off(type: 'remove', callback?:() =&gt; void): void
取消下载任务移除监听,异步方法,使用callback形式返回结果。
**需要权限**:ohos.permission.INTERNET
**系统能力**: SystemCapability.MiscServices.Download
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 取消订阅的事件类型,取值为'remove'(下载任务移除)。 |
| callback | function | 否 | 取消下载移除的回调函数。 |
- 示例:
```
request.download({ url: 'https://xxxx/xxxx.hap' }, (err, data)=> {
if (err) {
console.error('Failed to remove the download task. Cause:' + JSON.stringify(err));
}
downloadTask = data;
downloadTask.off('remove', function callBack() {
console.info('Download task removed.');
}
);
});
```
### remove
remove(): Promise&lt;boolean&gt;
......@@ -853,7 +722,7 @@ query(): Promise&lt;DownloadInfo&gt;
```
downloadTask.query().then((downloadInfo) => {
console.info('Download task queried. Data:' + JSON.stringfy(downloadInfo))
console.info('Download task queried. Data:' + JSON.stringify(downloadInfo))
}) .catch((err) => {
console.error('Failed to query the download task. Cause:' + err)
});
......
......@@ -160,12 +160,14 @@ import window from '@ohos.window';
| DEFAULT | 0 | 默认色域模式。 |
| WIDE_GAMUT | 1 | 广色域模式。 |
## window.create<sup>7</sup><a name="window-create"></a>
## window.create<sup>7+</sup>
create(id: string, type: WindowType, callback: AsyncCallback&lt;Window&gt;): void
创建子窗口,使用callback方式作为异步方法。
从API version 8开始,此接口废弃,推荐使用[window.create<sup>8+</sup>](#windowcreate8)接口。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
......@@ -191,12 +193,14 @@ create(id: string, type: WindowType, callback: AsyncCallback&lt;Window&gt;): voi
});
```
## window.create<sup>7</sup>
## window.create<sup>7+</sup>
create(id: string, type: WindowType): Promise&lt;Window&gt;
创建子窗口,使用Promise方式作为异步方法。
从API version 8开始,此接口废弃,推荐使用[window.create<sup>8+</sup>](#windowcreate8)接口。
**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
......@@ -523,7 +527,7 @@ off(type: 'systemBarTintChange', callback?: Callback&lt;SystemBarTintState &gt;)
## Window
下列API示例中都需使用[getTopWindow()](#window-gettopwindow)[create()](#window-create)[find()](#window-find)等先获取到Window实例,再通过此实例调用对应方法。
下列API示例中都需使用[getTopWindow()](#window-gettopwindow)[create()](#windowcreate7)[find()](#window-find)等先获取到Window实例,再通过此实例调用对应方法。
### hide<sup>7+</sup>
......
......@@ -166,7 +166,7 @@ ACL方式的工作流程可以参考[ACL方式使用说明](#ACL方式使用说
如果应用申请的权限中,存在部分权限的权限等级比应用APL等级高,开发者可以选择通过ACL方式来解决这个等级不匹配的问题。
在上述的[授权流程](# 不同权限类型的授权流程)的基础上,应用需要进行额外的ACL声明步骤。
在上述的[授权流程](#不同权限类型的授权流程)的基础上,应用需要进行额外的ACL声明步骤。
应用除了需要在config.json文件声明所需申请的权限,还需要在应用的[profile文件中声明](accesstoken-guidelines.md)不满足申请条件的高等级权限,接下来的授权流程不变。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册