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

!9348 monthly_0816:适配内部网站添加/删除多余空行等:无需翻译

Merge pull request !9348 from 葛亚芳/monthly_20220816
......@@ -14,23 +14,23 @@ DataShare即数据共享模块,用于应用管理其自身数据,也提供
在进行应用的开发前,开发者应了解以下基本概念:
- 数据提供方
- **数据提供方**
提供数据及实现相关业务的应用程序,也称为生产者或服务端。
- 数据访问方
- **数据访问方**
访问数据提供方所提供的数据或业务的应用程序,也称为消费者或客户端。
- 数据集
- **数据集**
用户要插入的数据集合,可以是一条或多条数据。数据集以键值对的形式存在,键为字符串类型,值支持数字、字符串、布尔值、无符号整型数组等多种数据类型。
- 结果集
- **结果集**
用户查询之后的结果集合,其提供了灵活的数据访问方式,以便用户获取各项数据。
- 谓词
- **谓词**
用户访问数据库中的数据所使用的筛选条件,经常被应用在更新数据、删除数据和查询数据中等场景。
......
......@@ -16,6 +16,7 @@
**表1** 分布式数据对象实例创建接口
| 包名 | 接口名 | 描述 |
| -------- | -------- | -------- |
| ohos.data.distributedDataObject| createDistributedObject(source: object): DistributedObject | 创建一个分布式数据对象实例,用于数据操作。 <br>-&nbsp;source:设置distributedObject的属性。<br>-&nbsp;DistributedObject:返回值是创建好的分布式对象。 |
......@@ -25,6 +26,7 @@
创建一个随机的sessionId,可将其设置为一个分布式数据对象的sessionId。
**表2** 分布式数据对象sessionId创建接口
| 包名 | 接口名 | 描述 |
| -------- | -------- | -------- |
| ohos.data.distributedDataObject| genSessionId(): string | 创建一个sessionId,可作为分布式数据对象的sessionId。 |
......@@ -34,6 +36,7 @@
设置分布式数据对象的sessionId,sessionId是一次(多设备)协同的唯一标识,同步的多个数据对象需要关联同一个sessionId。
**表3** 分布式数据对象sessionId设置接口
| 类名 | 接口名 | 描述 |
| -------- | -------- | -------- |
| DistributedDataObject | setSessionId(sessionId?: string): boolean | 为分布式数据对象设置sessionId。<br>&nbsp;sessionId:分布式对象在可信组网中的标识ID。如果要退出分布式组网,设置为""或不设置均可。 |
......@@ -54,6 +57,7 @@
订阅数据对象上下线需要指定Callback作为回调方法,订阅的数据对象上线/下线后,对端的数据对象会收到Callback回调。
**表5** 分布式数据对象数据上下线订阅接口
| 类名 | 接口名 | 描述 |
| -------- | -------- | -------- |
| DistributedDataObject| on(type: 'status', callback: Callback<{ sessionId: string, networkId: string, status: 'online' \| 'offline' }>): void | 订阅数据对象上下线。 |
......@@ -72,6 +76,7 @@
- 成功恢复数据之后。
**表6** 分布式数据对象保存和撤回保存接口
| 类名 | 接口名 | 描述 |
| -------- | -------- | -------- |
| DistributedDataObject | save(deviceId: string): Promise&lt;SaveSuccessResponse&gt; | 保存数据对象。 |
......@@ -267,8 +272,10 @@
```js
local_object.setSessionId("");
```
## 相关实例
针对分布式数据对象,有以下相关实例可供参考:
- [`DistributedNote`:分布式备忘录(eTS)(API9)(Full SDK)](https://gitee.com/openharmony/applications_app_samples/tree/master/data/DistributedNote)
- [`DistributedObjectDms`:分布式跑马灯(eTS)(API9)(Full SDK)](https://gitee.com/openharmony/applications_app_samples/tree/master/data/DistributedObjectDms)
\ No newline at end of file
......@@ -9,70 +9,69 @@
## 基本概念
- **KV数据模型**
“KV数据模型”是“Key-Value数据模型”的简称,“Key-Value”即“键-值”;其数据以键值对的形式进行组织、索引和存储。
### KV数据模型
KV数据模型适合不涉及过多数据关系和业务关系的业务数据存储,比SQL数据库存储拥有更好的读写性能,同时因其在分布式场景中降低了解决数据库版本兼容问题的复杂度,和数据同步过程中冲突解决的复杂度而被广泛使用。分布式数据库也是基于KV数据模型,对外提供KV类型的访问接口
“KV数据模型”是“Key-Value数据模型”的简称,“Key-Value”即“键-值”;其数据以键值对的形式进行组织、索引和存储
- **分布式数据库事务性**
分布式数据库事务支持本地事务(和传统数据库的事务概念一致)和同步事务。同步事务是指在设备之间同步数据时,以本地事务为单位进行同步,一次本地事务的修改要么都同步成功,要么都同步失败。
KV数据模型适合不涉及过多数据关系和业务关系的业务数据存储,比SQL数据库存储拥有更好的读写性能,同时因其在分布式场景中降低了解决数据库版本兼容问题的复杂度,和数据同步过程中冲突解决的复杂度而被广泛使用。分布式数据库也是基于KV数据模型,对外提供KV类型的访问接口。
- **分布式数据库一致性**
在分布式场景中一般会涉及多个设备,组网内设备之间看到的数据是否一致称为分布式数据库的一致性。分布式数据库一致性可以分为**强一致性****弱一致性****最终一致性**
### 分布式数据库事务性
- **强一致性**:是指某一设备成功增、删、改数据后,组网内设备对该数据的读取操作都将得到更新后的值。
- **弱一致性**:是指某一设备成功增、删、改数据后,组网内设备可能读取到本次更新数据,也可能读取不到,不能保证在多长时间后每个设备的数据一定是一致的。
- **最终一致性**:是指某一设备成功增、删、改数据后,组网内设备可能读取不到本次更新数据,但在某个时间窗口之后组网内设备的数据能够达到一致状态。
分布式数据库事务支持本地事务(和传统数据库的事务概念一致)和同步事务。同步事务是指在设备之间同步数据时,以本地事务为单位进行同步,一次本地事务的修改要么都同步成功,要么都同步失败。
强一致性对分布式数据的管理要求非常高,在服务器的分布式场景可能会遇到。因为移动终端设备的不常在线、以及无中心的特性,分布式数据服务不支持强一致性,只支持最终一致性。
### 分布式数据库一致性
- **分布式数据库同步**
底层通信组件完成设备发现和认证,会通知上层应用程序(包括分布式数据服务)设备上线。收到设备上线的消息后分布式数据服务可以在两个设备之间建立加密的数据传输通道,利用该通道在两个设备之间进行数据同步。
在分布式场景中一般会涉及多个设备,组网内设备之间看到的数据是否一致称为分布式数据库的一致性。分布式数据库一致性可以分为**强一致性****弱一致性****最终一致性**
分布式数据服务提供了两种同步方式:**手动同步****自动同步**
- **强一致性**:是指某一设备成功增、删、改数据后,组网内设备对该数据的读取操作都将得到更新后的值。
- **弱一致性**:是指某一设备成功增、删、改数据后,组网内设备可能读取到本次更新数据,也可能读取不到,不能保证在多长时间后每个设备的数据一定是一致的。
- **最终一致性**:是指某一设备成功增、删、改数据后,组网内设备可能读取不到本次更新数据,但在某个时间窗口之后组网内设备的数据能够达到一致状态。
- **手动同步**:由应用程序调用sync接口来触发,需要指定同步的设备列表和同步模式。同步模式分为PULL_ONLY(将远端数据拉到本端)、PUSH_ONLY(将本端数据推送到远端)和PUSH_PULL(将本端数据推送到远端同时也将远端数据拉取到本端)。内部接口支持按条件过滤同步,将符合条件的数据同步到远端。
- **自动同步**:包括全量同步和按条件订阅同步。全量同步由分布式数据库自动将本端数据推送到远端,同时也将远端数据拉取到本端来完成数据同步,同步时机包括设备上线、应用程序更新数据等,应用不需要主动调用sync接口;内部接口支持按条件订阅同步,将远端符合订阅条件的数据自动同步到本端。
强一致性对分布式数据的管理要求非常高,在服务器的分布式场景可能会遇到。因为移动终端设备的不常在线、以及无中心的特性,分布式数据服务不支持强一致性,只支持最终一致性。
- **单版本分布式数据库**
### 分布式数据库同步
单版本分布式数据库是指数据在本地保存是以单个KV条目为单位的方式保存,对每个Key最多只保存一个条目项,当数据在本地被用户修改时,不管它是否已经被同步出去,均直接在这个条目上进行修改。同步也以此为基础,按照它在本地被写入或更改的顺序将当前最新一次修改逐条同步至远端设备
底层通信组件完成设备发现和认证,会通知上层应用程序(包括分布式数据服务)设备上线。收到设备上线的消息后分布式数据服务可以在两个设备之间建立加密的数据传输通道,利用该通道在两个设备之间进行数据同步
- **设备协同分布式数据库**
分布式数据服务提供了两种同步方式:**手动同步****自动同步**
设备协同分布式数据库建立在单版本分布式数据库之上,对应用程序存入的KV数据中的Key前面拼接了本设备的DeviceID标识符,这样能保证每个设备产生的数据严格隔离,底层按照设备的维度管理这些数据,设备协同分布式数据库支持以设备的维度查询分布式数据,但是不支持修改远端设备同步过来的数据。
- **手动同步**:由应用程序调用sync接口来触发,需要指定同步的设备列表和同步模式。同步模式分为PULL_ONLY(将远端数据拉到本端)、PUSH_ONLY(将本端数据推送到远端)和PUSH_PULL(将本端数据推送到远端同时也将远端数据拉取到本端)。内部接口支持按条件过滤同步,将符合条件的数据同步到远端。
- **自动同步**:包括全量同步和按条件订阅同步。全量同步由分布式数据库自动将本端数据推送到远端,同时也将远端数据拉取到本端来完成数据同步,同步时机包括设备上线、应用程序更新数据等,应用不需要主动调用sync接口;内部接口支持按条件订阅同步,将远端符合订阅条件的数据自动同步到本端。
- **分布式数据库冲突解决策略**
### 单版本分布式数据库
分布式数据库多设备提交冲突场景,在给提交冲突做合并的过程中,如果多个设备同时修改了同一数据,则称这种场景为数据冲突。数据冲突采用默认冲突解决策略(Last-write-wins),基于提交时间戳,取时间戳较大的提交数据,当前不支持定制冲突解决策略
单版本分布式数据库是指数据在本地保存是以单个KV条目为单位的方式保存,对每个Key最多只保存一个条目项,当数据在本地被用户修改时,不管它是否已经被同步出去,均直接在这个条目上进行修改。同步也以此为基础,按照它在本地被写入或更改的顺序将当前最新一次修改逐条同步至远端设备
- **数据库Schema化管理与谓词查询**
### 设备协同分布式数据库
单版本数据库支持在创建和打开数据库时指定Schema,数据库根据Schema定义感知KV记录的Value格式,以实现对Value值结构的检查,并基于Value中的字段实现索引建立和谓词查询
设备协同分布式数据库建立在单版本分布式数据库之上,对应用程序存入的KV数据中的Key前面拼接了本设备的DeviceID标识符,这样能保证每个设备产生的数据严格隔离,底层按照设备的维度管理这些数据,设备协同分布式数据库支持以设备的维度查询分布式数据,但是不支持修改远端设备同步过来的数据
- **分布式数据库备份能力**
### 分布式数据库冲突解决策略
提供分布式数据库备份能力,业务通过设置backup属性为true,可以触发分布式数据服务每日备份。当分布式数据库发生损坏,分布式数据服务会删除损坏数据库,并且从备份数据库中恢复上次备份的数据。如果不存在备份数据库,则创建一个新的数据库。同时支持加密数据库的备份能力。
分布式数据库多设备提交冲突场景,在给提交冲突做合并的过程中,如果多个设备同时修改了同一数据,则称这种场景为数据冲突。数据冲突采用默认冲突解决策略(Last-write-wins),基于提交时间戳,取时间戳较大的提交数据,当前不支持定制冲突解决策略。
### 数据库Schema化管理与谓词查询
单版本数据库支持在创建和打开数据库时指定Schema,数据库根据Schema定义感知KV记录的Value格式,以实现对Value值结构的检查,并基于Value中的字段实现索引建立和谓词查询。
### 分布式数据库备份能力
提供分布式数据库备份能力,业务通过设置backup属性为true,可以触发分布式数据服务每日备份。当分布式数据库发生损坏,分布式数据服务会删除损坏数据库,并且从备份数据库中恢复上次备份的数据。如果不存在备份数据库,则创建一个新的数据库。同时支持加密数据库的备份能力。
## 运作机制
分布式数据服务支撑OpenHarmony系统上应用程序数据库数据分布式管理,支持数据在相同帐号的多端设备之间相互同步,为用户在多端设备上提供一致的用户体验,分布式数据服务包含五部分:
- **服务接口**
分布式数据服务提供专门的数据库创建、数据访问、数据订阅等接口给应用程序调用,接口支持KV数据模型,支持常用的数据类型,同时确保接口的兼容性、易用性和可发布性。
- **服务接口:** 分布式数据服务提供专门的数据库创建、数据访问、数据订阅等接口给应用程序调用,接口支持KV数据模型,支持常用的数据类型,同时确保接口的兼容性、易用性和可发布性。
- **服务组件**
服务组件负责服务内元数据管理、权限管理、加密管理、备份和恢复管理以及多用户管理等、同时负责初始化底层分布式DB的存储组件、同步组件和通信适配层。
- **服务组件:** 服务组件负责服务内元数据管理、权限管理、加密管理、备份和恢复管理以及多用户管理等、同时负责初始化底层分布式DB的存储组件、同步组件和通信适配层。
- **存储组件**
存储组件负责数据的访问、数据的缩减、事务、快照、数据库加密,以及数据合并和冲突解决等特性。
- **存储组件:** 存储组件负责数据的访问、数据的缩减、事务、快照、数据库加密,以及数据合并和冲突解决等特性。
- **同步组件**
同步组件连结了存储组件与通信组件,其目标是保持在线设备间的数据库数据一致性,包括将本地产生的未同步数据同步给其他设备,接收来自其他设备发送过来的数据,并合并到本地设备中。
- **同步组件:** 同步组件连结了存储组件与通信组件,其目标是保持在线设备间的数据库数据一致性,包括将本地产生的未同步数据同步给其他设备,接收来自其他设备发送过来的数据,并合并到本地设备中。
- **通信适配层**
通信适配层负责调用底层公共通信层的接口完成通信管道的创建、连接,接收设备上下线消息,维护已连接和断开设备列表的元数据,同时将设备上下线信息发送给上层同步组件,同步组件维护连接的设备列表,同步数据时根据该列表,调用通信适配层的接口将数据封装并发送给连接的设备。
- **通信适配层:** 通信适配层负责调用底层公共通信层的接口完成通信管道的创建、连接,接收设备上下线消息,维护已连接和断开设备列表的元数据,同时将设备上下线信息发送给上层同步组件,同步组件维护连接的设备列表,同步数据时根据该列表,调用通信适配层的接口将数据封装并发送给连接的设备。
应用程序通过调用分布式数据服务接口实现分布式数据库创建、访问、订阅功能,服务接口通过操作服务组件提供的能力,将数据存储至存储组件,存储组件调用同步组件实现将数据同步,同步组件使用通信适配层将数据同步至远端设备,远端设备通过同步组件接收数据,并更新至本端存储组件,通过服务接口提供给应用程序使用。
......@@ -88,6 +87,7 @@
- 分布式数据服务的数据模型仅支持KV数据模型,不支持外键、触发器等关系型数据库中的功能。
- 分布式数据服务支持的KV数据模型规格:
- 设备协同数据库,针对每条记录,Key的长度≤896 Byte,Value的长度&lt;4 MB。
- 单版本数据库,针对每条记录,Key的长度≤1 KB,Value的度&lt;4 MB。
- 每个应用程序最多支持同时打开16个分布式数据库。
......
......@@ -171,7 +171,9 @@
console.info("Failed to delete. Cause: " + err);
})
```
## 相关实例
针对首选项开发,有以下相关实例可供参考:
- [`Preferences`:首选项(eTS)(API9)](https://gitee.com/openharmony/applications_app_samples/tree/master/data/Preferences)
\ No newline at end of file
......@@ -30,6 +30,7 @@
**表2** 数据库插入API
| 类名 | 接口名 | 描述 |
| -------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore | insert(table:string,values:ValuesBucket):Promise&lt;number&gt; | 向目标表中插入一行数据,使用Promise异步回调。<br>如果操作成功,返回行ID;否则返回-1。<br/>-table:指定的目标表名。<br/>-values:表示要插入到表中的数据行。 |
......@@ -40,6 +41,7 @@
**表3** 数据库更新API
| 类名 | 接口名 | 描述 |
| -------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore | update(values:ValuesBucket,predicates:RdbPredicates):Promise&lt;number&gt; | 根据RdbPredicates的指定实例对象更新数据库中的数据,使用Promise异步回调。<br>返回受影响的行数。<br/>-values:以ValuesBucket存储的要更新的数据。<br/>-predicates:表示RdbPredicates的实例对象指定的更新条件。 |
......@@ -50,6 +52,7 @@
**表4** 数据库删除API
| 类名 | 接口名 | 描述 |
| -------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore | delete(predicates:RdbPredicates):Promise&lt;number&gt; | 根据RdbPredicates的指定实例对象从数据库中删除数据,使用Promise异步回调。<br>返回受影响的行数。 <br/>-predicates:RdbPredicates的实例对象指定的删除条件。 |
......@@ -63,6 +66,7 @@
**表5** 数据库查询API
| 类名 | 接口名 | 描述 |
| -------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| RdbStore | query(predicates:RdbPredicates,columns?:Array&lt;string&gt;):Promise&lt;ResultSet&gt; | 根据指定条件查询数据库中的数据,使用Promise异步回调。<br/>-predicates:表示RdbPredicates的实例对象指定的查询条件。<br/>-columns:表示要查询的列。如果值为空,则查询应用于所有列。 |
......
......@@ -38,6 +38,7 @@ USB设备可作为Host设备连接Device设备进行数据传输。开发示例
1. 获取设备列表。
```js
// 导入usb接口api包。
import usb from '@ohos.usb';
......@@ -97,6 +98,7 @@ USB设备可作为Host设备连接Device设备进行数据传输。开发示例
```
2. 获取设备操作权限。
```js
var deviceName = deviceList[0].name;
// 申请操作指定的device的操作权限。
......@@ -108,6 +110,7 @@ USB设备可作为Host设备连接Device设备进行数据传输。开发示例
```
3. 打开Device设备。
```js
// 打开设备,获取数据传输通道。
var pipe = usb.connectDevice(deviceList[0]);
......@@ -119,6 +122,7 @@ USB设备可作为Host设备连接Device设备进行数据传输。开发示例
```
4. 数据传输。
```js
/*
读取数据,在device信息中选取对应数据接收的endpoint来做数据传输
......@@ -149,10 +153,13 @@ USB设备可作为Host设备连接Device设备进行数据传输。开发示例
```
5. 释放接口,关闭设备。
```js
usb.releaseInterface(pipe, interface1);
usb.closePipe(pipe);
```
## 相关实例
针对USB管理开发,有以下相关实例可供参考:
- [`USBManager`:USB管理(eTS)(API8)](https://gitee.com/openharmony/applications_app_samples/tree/master/device/USBManager)
......@@ -50,7 +50,6 @@
1. 使用文本组件。
工程同步完成后,在“**Project**”窗口,点击“**entry &gt; src &gt; main &gt; ets &gt; MainAbility &gt; pages**”,打开“**index.ets**”文件,可以看到页面由Text组件组成。“**index.ets**”文件的示例如下:
```ts
// index.ets
......@@ -76,7 +75,6 @@
2. 添加按钮。
在默认页面基础上,我们添加一个Button组件,作为按钮响应用户点击,从而实现跳转到另一个页面。“**index.ets**”文件的示例如下:
```ts
// index.ets
......@@ -147,7 +145,6 @@
2. 添加文本及按钮。
参照第一个页面,在第二个页面添加Text组件、Button组件等,并设置其样式。“**second.ets**”文件的示例如下:
```ts
// second.ets
......@@ -190,7 +187,6 @@
1. 第一个页面跳转到第二个页面。
在第一个页面中,跳转按钮绑定onClick事件,点击按钮时跳转到第二页。“**index.ets**”文件的示例如下:
```ts
// index.ets
......@@ -235,7 +231,6 @@
2. 第二个页面返回到第一个页面。
在第二个页面中,返回按钮绑定onClick事件,点击按钮时返回到第一页。“**second.ets**”文件的示例如下:
```ts
// second.ets
......
......@@ -55,7 +55,6 @@
1. 使用文本组件。
工程同步完成后,在“**Project**”窗口,点击“**entry &gt; src &gt; main &gt; ets &gt; MainAbility &gt; pages**”,打开“**index.ets**”文件,可以看到页面由Text组件组成。“**index.ets**”文件的示例如下:
```ts
// index.ets
......@@ -81,7 +80,6 @@
2. 添加按钮。
在默认页面基础上,我们添加一个Button组件,作为按钮响应用户点击,从而实现跳转到另一个页面。“**index.ets**”文件的示例如下:
```ts
// index.ets
......@@ -146,7 +144,6 @@
2. 添加文本及按钮。
参照第一个页面,在第二个页面添加Text组件、Button组件等,并设置其样式。“**second.ets**”文件的示例如下:
```ts
// second.ets
......@@ -189,7 +186,6 @@
1. 第一个页面跳转到第二个页面。
在第一个页面中,跳转按钮绑定onClick事件,点击按钮时跳转到第二页。“**index.ets**”文件的示例如下:
```ts
// index.ets
......@@ -234,7 +230,6 @@
2. 第二个页面返回到第一个页面。
在第二个页面中,返回按钮绑定onClick事件,点击按钮时返回到第一页。“**second.ets**”文件的示例如下:
```ts
// second.ets
......
......@@ -49,7 +49,6 @@
1. 使用文本组件。
工程同步完成后,在“**Project**”窗口,点击“**entry &gt; src &gt; main &gt; js &gt; MainAbility &gt; pages&gt; index**”,打开“**index.hml**”文件,设置Text组件内容。“**index.hml**”文件的示例如下:
```html
<!-- index.hml -->
......@@ -63,7 +62,6 @@
2. 添加按钮,并绑定onclick方法。
在默认页面基础上,我们添加一个button类型的input组件,作为按钮响应用户点击,从而实现跳转到另一个页面。“**index.hml**”文件的示例代码如下:
```html
<!-- index.hml -->
......@@ -80,7 +78,6 @@
3. 设置页面样式。
在“**Project**”窗口,点击“**entry &gt; src &gt; main &gt; js &gt; MainAbility &gt; pages&gt; index**”,打开“**index.css**”文件,可以对页面中文本、按钮设置宽高、字体大小、间距等样式。“**index.css**”文件的示例如下:
```css
/* index.css */
......@@ -129,7 +126,6 @@
2. 添加文本及按钮。
参照第一个页面,在第二个页面添加文本、按钮及点击按钮绑定页面返回等。“**second.hml**”文件的示例如下:
```html
<!-- second.hml -->
......@@ -184,7 +180,6 @@
1. 第一个页面跳转到第二个页面。
在第一个页面中,跳转按钮绑定onclick方法,点击按钮时跳转到第二页。“**index.js**”示例如下:
```js
// index.js
......@@ -202,7 +197,6 @@
2. 第二个页面返回到第一个页面。
在第二个页面中,返回按钮绑定back方法,点击按钮时返回到第一页。“**second.js**”示例如下:
```js
// second.js
......
......@@ -31,11 +31,14 @@ onConnect(want: Want): rpc.RemoteObject
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want | [Want](js-apis-application-Want.md) | 是 | 当前ability的Want类型信息,包括ability名称、bundle名称等。 |
**返回值:**
| 类型 | 说明 |
| ----------------------------------------------- | -------------------- |
| [rpc.RemoteObject](js-apis-rpc.md#remoteobject) | 窗口功能的代理对象。 |
......@@ -88,6 +91,8 @@ onDisconnect(want: Want): void
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want | [Want](js-apis-application-Want.md) | 是 | 当前Ability的Want类型信息,包括ability名称、bundle名称等。 |
......@@ -114,6 +119,8 @@ onWindowReady(window: Window): void
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| window | [Window](js-apis-window.md) | 是 | 当前窗口实例。 |
......
......@@ -23,16 +23,19 @@ createDistributedObject(source: object): DistributedObject
**系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| source | object | 是 | 设置distributedObject的属性。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| [DistributedObject](#distributedobject) | 创建完成的分布式对象。 |
**示例:**
```js
import distributedObject from '@ohos.data.distributedDataObject';
// 创建对象,对象包含4个属性类型,string,number,boolean和Object
......@@ -49,11 +52,13 @@ genSessionId(): string
**系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject。
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| string | 随机创建的sessionId。 |
**示例:**
```js
import distributedObject from '@ohos.data.distributedDataObject';
var sessionId = distributedObject.genSessionId();
......@@ -118,7 +123,6 @@ g_object.setSessionId(distributedObject.genSessionId());
g_object.setSessionId("");
```
### on('change')
on(type: 'change', callback: Callback<{ sessionId: string, fields: Array&lt;string&gt; }>): void
......@@ -128,12 +132,14 @@ on(type: 'change', callback: Callback<{ sessionId: string, fields: Array&lt;stri
**系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 事件类型,固定为'change',表示数据变更。 |
| callback | Callback<{ sessionId: string, fields: Array&lt;string&gt; }> | 是 | 变更回调对象实例。<br>sessionId:标识变更对象的sessionId; <br>fields:标识对象变更的属性名。 |
**示例:**
```js
import distributedObject from '@ohos.data.distributedDataObject';
var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
......@@ -157,13 +163,14 @@ off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array&lt;st
**系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 事件类型,固定为'change',表示数据变更。 |
| callback | Callback<{ sessionId: string, fields: Array&lt;string&gt; }> | 否 | 需要删除的数据变更回调,若不设置则删除该对象所有的数据变更回调。<br>sessionId:标识变更对象的sessionId; <br>fields:标识对象变更的属性名。 |
**示例:**
```js
import distributedObject from '@ohos.data.distributedDataObject';
var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
......@@ -182,12 +189,14 @@ on(type: 'status', callback: Callback<{ sessionId: string, networkId: string, st
**系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 事件类型,固定为'status',表示对象上下线。 |
| callback | Callback<{ sessionId: string, networkId: string, status: 'online' \| 'offline' }> | 是 | 监听上下线回调实例。<br>sessionId:标识变更对象的sessionId; <br>networkId:标识对象设备,即deviceId; <br>status:标识对象为'online'(上线)或'offline'(下线)的状态。 |
**示例:**
```js
import distributedObject from '@ohos.data.distributedDataObject';
globalThis.statusCallback = (sessionId, networkId, status) => {
......@@ -207,13 +216,14 @@ off(type: 'status', callback?: Callback<{ sessionId: string, deviceId: string, s
**系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 事件类型,固定为'status',表示对象上下线。 |
| callback | Callback<{ sessionId: string, deviceId: string, status: 'online' \| 'offline' }> | 否 | 需要删除的上下线回调,若不设置则删除该对象所有的上下线回调。<br>sessionId:标识变更对象的sessionId; <br>deviceId:标识变更对象的deviceId; <br>status:标识对象为'online'(上线)或'offline'(下线)的状态。 |
**示例:**
```js
import distributedObject from '@ohos.data.distributedDataObject';
var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
......@@ -243,12 +253,14 @@ save(deviceId: string, callback: AsyncCallback&lt;SaveSuccessResponse&gt;): void
**系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 保存数据的deviceId,当deviceId为"local",代表存储在本地设备。 |
| callback | AsyncCallback&lt;[SaveSuccessResponse](#savesuccessresponse9)&gt; | 是 | 回调函数。返回SaveSuccessResponse,包含sessionId、version、deviceId等信息。 |
**示例:**
```js
import distributedObject from '@ohos.data.distributedDataObject';
var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false});
......@@ -279,6 +291,7 @@ save(deviceId: string): Promise&lt;SaveSuccessResponse&gt;
**系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 保存数据的设备号,当deviceId默认为"local",标识需要保存对象的设备。 |
......@@ -317,6 +330,7 @@ revokeSave(callback: AsyncCallback&lt;RevokeSaveSuccessResponse&gt;): void
**系统能力:** SystemCapability.DistributedDataManager.DataObject.DistributedObject。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;[RevokeSaveSuccessResponse](#revokesavesuccessresponse9)&gt; | 否 | 回调函数。返回RevokeSaveSuccessResponse,包含sessionId。 |
......
......@@ -6,7 +6,6 @@
>
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 使用说明
需要通过[RdbStore.query()](js-apis-data-rdb.md#query)获取resultSet对象。
......@@ -25,7 +24,6 @@ promise.then((resultSet) => {
提供通过查询数据库生成的数据库结果集的访问方法。
### 属性
**系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.RelationalStore.Core。
......@@ -42,7 +40,6 @@ promise.then((resultSet) => {
| isStarted | boolean | 是 | 检查指针是否移动过。 |
| isClosed | boolean | 是 | 检查当前结果集是否关闭。 |
### getColumnIndex
getColumnIndex(columnName: string): number
......@@ -52,16 +49,19 @@ getColumnIndex(columnName: string): number
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| columnName | string | 是 | 表示结果集中指定列的名称。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| number | 返回指定列的索引。 |
**示例:**
```js
resultSet.goToFirstRow()
const id = resultSet.getLong(resultSet.getColumnIndex("ID"))
......@@ -70,7 +70,6 @@ getColumnIndex(columnName: string): number
const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY"))
```
### getColumnName
getColumnName(columnIndex: number): string
......@@ -80,23 +79,25 @@ getColumnName(columnIndex: number): string
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| columnIndex | number | 是 | 表示结果集中指定列的索引。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| string | 返回指定列的名称。 |
**示例:**
```js
const id = resultSet.getColumnName(0)
const name = resultSet.getColumnName(1)
const age = resultSet.getColumnName(2)
```
### goTo
goTo(offset:number): boolean
......@@ -106,16 +107,19 @@ goTo(offset:number): boolean
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| offset | number | 是 | 表示相对于当前位置的偏移量。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| boolean | 如果成功移动结果集,则为true;否则返回false。 |
**示例:**
```js
let predicatesgoto = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygoto = rdbStore.query(predicatesgoto, ["ID", "NAME", "AGE", "SALARY", "CODES"])
......@@ -127,7 +131,6 @@ goTo(offset:number): boolean
})
```
### goToRow
goToRow(position: number): boolean
......@@ -137,16 +140,19 @@ goToRow(position: number): boolean
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| position | number | 是 | 表示要移动到的指定位置。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| boolean | 如果成功移动结果集,则为true;否则返回false。 |
**示例:**
```js
let predicatesgotorow = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygotorow = rdbStore.query(predicatesgotorow, ["ID", "NAME", "AGE", "SALARY", "CODES"])
......@@ -158,7 +164,6 @@ goToRow(position: number): boolean
})
```
### goToFirstRow
goToFirstRow(): boolean
......@@ -169,11 +174,13 @@ goToFirstRow(): boolean
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| boolean | 如果成功移动结果集,则为true;否则返回false。 |
**示例:**
```js
let predicatesgoFirst = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygoFirst = rdbStore.query(predicatesgoFirst, ["ID", "NAME", "AGE", "SALARY", "CODES"])
......@@ -185,7 +192,6 @@ goToFirstRow(): boolean
})
```
### goToLastRow
goToLastRow(): boolean
......@@ -195,11 +201,13 @@ goToLastRow(): boolean
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| boolean | 如果成功移动结果集,则为true;否则返回false。 |
**示例:**
```js
let predicatesgoLast = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygoLast = rdbStore.query(predicatesgoLast, ["ID", "NAME", "AGE", "SALARY", "CODES"])
......@@ -211,7 +219,6 @@ goToLastRow(): boolean
})
```
### goToNextRow
goToNextRow(): boolean
......@@ -221,11 +228,13 @@ goToNextRow(): boolean
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| boolean | 如果成功移动结果集,则为true;否则返回false。 |
**示例:**
```js
let predicatesgoNext = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygoNext = rdbStore.query(predicatesgoNext, ["ID", "NAME", "AGE", "SALARY", "CODES"])
......@@ -237,7 +246,6 @@ goToNextRow(): boolean
})
```
### goToPreviousRow
goToPreviousRow(): boolean
......@@ -247,11 +255,13 @@ goToPreviousRow(): boolean
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| boolean | 如果成功移动结果集,则为true;否则返回false。 |
**示例:**
```js
let predicatesgoPrev = new dataRdb.RdbPredicates("EMPLOYEE")
let promisequerygoPrev = rdbStore.query(predicatesgoPrev, ["ID", "NAME", "AGE", "SALARY", "CODES"])
......@@ -263,7 +273,6 @@ goToPreviousRow(): boolean
})
```
### getBlob
getBlob(columnIndex: number): Uint8Array
......@@ -273,21 +282,23 @@ getBlob(columnIndex: number): Uint8Array
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| columnIndex | number | 是 | 指定的列索引,从0开始。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| Uint8Array | 以字节数组的形式返回指定列的值。 |
**示例:**
```js
const codes = resultSet.getBlob(resultSet.getColumnIndex("CODES"))
```
### getString
getString(columnIndex: number): string
......@@ -297,21 +308,23 @@ getString(columnIndex: number): string
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| columnIndex | number | 是 | 指定的列索引,从0开始。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| string | 以字符串形式返回指定列的值。 |
**示例:**
```js
const name = resultSet.getString(resultSet.getColumnIndex("NAME"))
```
### getLong
getLong(columnIndex: number): number
......@@ -321,21 +334,23 @@ getLong(columnIndex: number): number
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| columnIndex | number | 是 | 指定的列索引,从0开始。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| number | 以Long形式返回指定列的值。 |
**示例:**
```js
const age = resultSet.getLong(resultSet.getColumnIndex("AGE"))
```
### getDouble
getDouble(columnIndex: number): number
......@@ -345,21 +360,23 @@ getDouble(columnIndex: number): number
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| columnIndex | number | 是 | 指定的列索引,从0开始。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| number | 以double形式返回指定列的值。 |
**示例:**
```js
const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY"))
```
### isColumnNull
isColumnNull(columnIndex: number): boolean
......@@ -369,21 +386,23 @@ isColumnNull(columnIndex: number): boolean
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| columnIndex | number | 是 | 指定的列索引,从0开始。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| boolean | 如果当前行中指定列的值为null,则返回true,否则返回false。 |
**示例:**
```js
const isColumnNull = resultSet.isColumnNull(resultSet.getColumnIndex("CODES"))
```
### close
close(): void
......@@ -393,6 +412,7 @@ close(): void
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**示例:**
```js
let predicatesClose = new dataRdb.RdbPredicates("EMPLOYEE")
let promiseClose = rdbStore.query(predicatesClose, ["ID", "NAME", "AGE", "SALARY", "CODES"])
......
# 屏幕
本模块提供管理屏幕的一些基础能力,包括获取屏幕对象,监听屏幕变化,创建和销毁虚拟屏幕等。
> **说明:**
......@@ -6,6 +7,7 @@
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
>
> 本模块接口为系统接口。
## 导入模块
```js
......@@ -39,6 +41,7 @@ screen.getAllScreens((err, data) => {
screenClass = data[0];
});
```
## screen.getAllScreens
getAllScreens(): Promise&lt;Array&lt;Screen&gt;&gt;
......@@ -48,11 +51,13 @@ getAllScreens(): Promise&lt;Array&lt;Screen&gt;&gt;
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
**返回值:**
| 类型 | 说明 |
| --------------------------------------------- | ----------------------------------------- |
| Promise&lt;Array&lt;[Screen](#screen)&gt;&gt; | Promise对象。返回当前获取的屏幕对象集合。 |
**示例:**
```js
var screenClass = null;
let promise = screen.getAllScreens();
......@@ -63,7 +68,9 @@ promise.then((data) => {
console.log('Failed to get all screens . Cause: ' + JSON.stringify(err));
});
```
## screen.on('connect' | 'disconnect' | 'change')
on(eventType: 'connect' | 'disconnect' | 'change', callback: Callback&lt;number&gt;): void
开启屏幕状态变化的监听。
......@@ -71,19 +78,23 @@ on(eventType: 'connect' | 'disconnect' | 'change', callback: Callback&lt;number&
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| --------- | ---------------------- | ---- | ------------------------------------------------------------ |
| eventType | string | 是 | 监听事件。<br/>-eventType为"connect"表示屏幕连接事件。<br/>-eventType为"disconnect"表示断开屏幕连接事件。<br/>-eventType为"change"表示屏幕状态改变事件。 |
| callback | Callback&lt;number&gt; | 是 | 回调函数。返回屏幕的id。 |
**示例:**
```js
var callback = (data) => {
console.info('Register the callback for screen changes. Data: ' + JSON.stringify(data))
};
screen.on("connect", callback);
```
## screen.off('connect' | 'disconnect' | 'change')
off(eventType: 'connect' | 'disconnect' | 'change', callback?: Callback&lt;number&gt;): void
关闭屏幕状态变化的监听。
......@@ -91,12 +102,14 @@ off(eventType: 'connect' | 'disconnect' | 'change', callback?: Callback&lt;numbe
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| --------- | ---------------------- | ---- | ------------------------------------------------------------ |
| eventType | string | 是 | 监听事件。<br/>-eventType为"connect"表示屏幕连接事件。<br/>-eventType为"disconnect"表示断开屏幕连接事件。<br/>-eventType为"change"表示屏幕状态改变事件。 |
| callback | Callback&lt;number&gt; | 否 | 回调函数。返回屏幕的id。 |
**示例:**
```js
var callback = (data) => {
console.info('Unegister the callback for screen changes. Data: ' + JSON.stringify(data))
......@@ -105,6 +118,7 @@ screen.off("connect", callback);
```
## screen.makeExpand
makeExpand(options:Array&lt;ExpandOption&gt;, callback: AsyncCallback&lt;number&gt;): void
将屏幕设置为扩展模式,使用callback异步回调。
......@@ -112,6 +126,7 @@ makeExpand(options:Array&lt;ExpandOption&gt;, callback: AsyncCallback&lt;number&
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------ | ---- | -------------------------------- |
| options | Array&lt;[ExpandOption](#expandoption)&gt; | 是 | 设置扩展屏幕的参数集合。 |
......@@ -132,6 +147,7 @@ screen.makeExpand([{screenId: 0, startX: 0, startY: 0}, {screenId: 1, startX: 10
```
## screen.makeExpand
makeExpand(options:Array&lt;ExpandOption&gt;): Promise&lt;number&gt;
将屏幕设置为扩展模式,使用Promise异步回调。
......@@ -145,11 +161,13 @@ makeExpand(options:Array&lt;ExpandOption&gt;): Promise&lt;number&gt;
| options | Array&lt;[ExpandOption](#expandoption)&gt; | 是 | 设置扩展屏幕的参数集合。 |
**返回值:**
| 类型 | 说明 |
| --------------------- | ----------------------------------- |
| Promise&lt;number&gt; | Promise对象。返回扩展屏幕的群组id。 |
**示例:**
```js
screen.makeExpand([{screenId: 0, startX: 0, startY: 0}, {screenId: 1, startX: 1080, startY: 0}]).then((data) => {
console.info('Succeeded in making screens as expand-screen.Data:' + JSON.stringify(data));
......@@ -159,6 +177,7 @@ screen.makeExpand([{screenId: 0, startX: 0, startY: 0}, {screenId: 1, startX: 10
```
## screen.makeMirror
makeMirror(mainScreen:number, mirrorScreen:Array&lt;number&gt;, callback: AsyncCallback&lt;number&gt;): void
将屏幕设置为镜像模式,使用callback异步回调。
......@@ -174,6 +193,7 @@ makeMirror(mainScreen:number, mirrorScreen:Array&lt;number&gt;, callback: AsyncC
| callback | AsyncCallback&lt;number&gt; | 是 | 回调函数。返回镜像屏幕的群组id。 |
**示例:**
```js
var mainScreenId = 0;
var mirrorScreenIds = [1, 2, 3];
......@@ -187,6 +207,7 @@ screen.makeMirror(mainScreenId, mirrorScreenIds, (err, data) => {
```
## screen.makeMirror
makeMirror(mainScreen:number, mirrorScreen:Array&lt;number&gt;): Promise&lt;number&gt;
将屏幕设置为镜像模式,使用Promise异步回调。
......@@ -201,11 +222,13 @@ makeMirror(mainScreen:number, mirrorScreen:Array&lt;number&gt;): Promise&lt;numb
| mirrorScreen | Array&lt;number&gt; | 是 | 镜像屏幕id集合。 |
**返回值:**
| 类型 | 说明 |
| --------------------- | ----------------------------------- |
| Promise&lt;number&gt; | Promise对象。返回镜像屏幕的群组id。 |
**示例:**
```js
var mainScreenId = 0;
var mirrorScreenIds = [1, 2, 3];
......@@ -217,6 +240,7 @@ screen.makeMirror(mainScreenId, mirrorScreenIds).then((data) => {
```
## screen.createVirtualScreen
createVirtualScreen(options:VirtualScreenOption, callback: AsyncCallback&lt;Screen&gt;): void
创建虚拟屏幕,使用callback异步回调。
......@@ -233,6 +257,7 @@ createVirtualScreen(options:VirtualScreenOption, callback: AsyncCallback&lt;Scre
| callback | AsyncCallback&lt;[Screen](#screen)&gt; | 是 | 回调函数,返回创建的虚拟屏幕对象。 |
**示例:**
```js
var screenClass = null;
screen.createVirtualScreen({
......@@ -252,6 +277,7 @@ screen.createVirtualScreen({
```
## screen.createVirtualScreen
createVirtualScreen(options:VirtualScreenOption): Promise&lt;Screen&gt;
创建虚拟屏幕,使用Promise异步回调。
......@@ -261,6 +287,7 @@ createVirtualScreen(options:VirtualScreenOption): Promise&lt;Screen&gt;
**需要权限**:ohos.permission.CAPTURE_SCREEN,如果VirtualScreenOption.surfaceId有效,此权限是必需的。仅系统应用可用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ------------------------------------------- | ---- | ------------------------ |
| options | [VirtualScreenOption](#virtualscreenoption) | 是 | 用于创建虚拟屏幕的参数。 |
......@@ -272,6 +299,7 @@ createVirtualScreen(options:VirtualScreenOption): Promise&lt;Screen&gt;
| Promise&lt;[Screen](#screen)&gt; | Promise对象。返回创建的虚拟屏幕对象。 |
**示例:**
```js
var screenClass = null;
screen.createVirtualScreen({
......@@ -289,6 +317,7 @@ screen.createVirtualScreen({
```
## screen.destroyVirtualScreen
destroyVirtualScreen(screenId:number, callback: AsyncCallback&lt;void&gt;): void
销毁虚拟屏幕,使用callback异步回调。
......@@ -296,12 +325,14 @@ destroyVirtualScreen(screenId:number, callback: AsyncCallback&lt;void&gt;): void
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
| screenId | number | 是 | 屏幕的id。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当销毁虚拟屏幕成功,err为undefined,否则为错误对象。 |
**示例:**
```js
var screenId = 1;
screen.destroyVirtualScreen(screenId, (err,data) => {
......@@ -314,6 +345,7 @@ screen.destroyVirtualScreen(screenId, (err,data) => {
```
## screen.destroyVirtualScreen
destroyVirtualScreen(screenId:number): Promise&lt;void&gt;
销毁虚拟屏幕,使用Promise异步回调。
......@@ -321,16 +353,19 @@ destroyVirtualScreen(screenId:number): Promise&lt;void&gt;
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ---------- |
| screenId | number | 是 | 屏幕的id。 |
**返回值:**
| 类型 | 说明 |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
**示例:**
```js
var screenId = 1;
screen.destroyVirtualScreen(screenId).then((data) => {
......@@ -341,6 +376,7 @@ screen.destroyVirtualScreen(screenId).then((data) => {
```
## screen.setVirtualScreenSurface
setVirtualScreenSurface(screenId:number, surfaceId: string, callback: AsyncCallback&lt;void&gt;): void
设置虚拟屏幕的surface,使用callback异步回调。
......@@ -372,6 +408,7 @@ screen.setVirtualScreenSurface(screenId, surfaceId, (err,data) => {
```
## screen.setVirtualScreenSurface
setVirtualScreenSurface(screenId:number, surfaceId: string): Promise&lt;void&gt;
设置虚拟屏幕的surface,使用Promise异步回调。
......@@ -381,17 +418,20 @@ setVirtualScreenSurface(screenId:number, surfaceId: string): Promise&lt;void&gt;
**需要权限**:ohos.permission.CAPTURE_SCREEN,仅系统应用可用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| --------- | ------ | ---- | ------------- |
| screenId | number | 是 | 屏幕的id。 |
| surfaceId | string | 是 | surface的id。 |
**返回值:**
| 类型 | 说明 |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
**示例:**
```js
var screenId = 1;
var surfaceId = '2048';
......@@ -403,6 +443,7 @@ screen.setVirtualScreenSurface(screenId, surfaceId).then((data) => {
```
## screen.isScreenRotationLocked
isScreenRotationLocked(): Promise&lt;boolean&gt;
查询当前自动转屏是否锁定,使用Promise异步回调。
......@@ -410,11 +451,13 @@ isScreenRotationLocked(): Promise&lt;boolean&gt;
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
**返回值:**
| 类型 | 说明 |
| ---------------------- | ------------------------------------- |
| Promise&lt;boolean&gt; | Promise对象。返回true表示当前自动转屏处于锁定状态;返回false表示当前自动转屏不处于锁定状态。 |
**示例:**
```js
screen.isScreenRotationLocked().then((isLocked) => {
console.info('Succeeded in getting screen rotation lock status. isLocked:'+ JSON.stringify(isLocked));
......@@ -424,6 +467,7 @@ screen.isScreenRotationLocked().then((isLocked) => {
```
## screen.isScreenRotationLocked
isScreenRotationLocked(callback: AsyncCallback&lt;boolean&gt;): void
查询当前自动转屏是否锁定,使用callback异步回调。
......@@ -449,6 +493,7 @@ screen.isScreenRotationLocked((err, isLocked) => {
```
## screen.setScreenRotationLocked
setScreenRotationLocked(isLocked: boolean): Promise&lt;void&gt;
设置自动转屏开关是否锁定,使用Promise异步回调。
......@@ -456,16 +501,19 @@ setScreenRotationLocked(isLocked: boolean): Promise&lt;void&gt;
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| --------- | ------ | ---- | ------------- |
| isLocked | boolean | 是 | 自动转屏开关是否锁定。true为锁定,false为未锁定. |
**返回值:**
| 类型 | 说明 |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
**示例:**
```js
var isLocked = false;
screen.setScreenRotationLocked(isLocked).then((data) => {
......@@ -476,6 +524,7 @@ screen.setScreenRotationLocked(isLocked).then((data) => {
```
## screen.setScreenRotationLocked
setScreenRotationLocked(isLocked: boolean, callback: AsyncCallback&lt;void&gt;): void
设置自动转屏开关是否锁定,使用callback异步回调。
......@@ -503,6 +552,7 @@ screen.setScreenRotationLocked(isLocked, (err, data) => {
```
## ExpandOption
扩展屏幕的参数。
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
......@@ -514,6 +564,7 @@ screen.setScreenRotationLocked(isLocked, (err, data) => {
| startY | number | 是 | 是 | 屏幕的起始Y轴坐标。 |
## VirtualScreenOption
创建虚拟屏幕的参数。
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
......@@ -527,6 +578,7 @@ screen.setScreenRotationLocked(isLocked, (err, data) => {
| surfaceId | string | 是 | 是 | 指定虚拟屏幕的surfaceId。 |
## Screen
屏幕实例。
下列API示例中都需先使用[getAllScreens()](#screengetallscreens)[createVirtualScreen()](#screencreatevirtualscreen)中的任一方法获取到Screen实例,再通过此实例调用对应方法。
......@@ -542,6 +594,7 @@ screen.setScreenRotationLocked(isLocked, (err, data) => {
| orientation | [Orientation](#orientation) | 是 | 否 | 屏幕方向。 |
### setOrientation
setOrientation(orientation: Orientation, callback: AsyncCallback&lt;void&gt;): void
设置屏幕方向,使用callback异步回调。
......@@ -554,6 +607,7 @@ setOrientation(orientation: Orientation, callback: AsyncCallback&lt;void&gt;): v
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当设置屏幕方向成功,err为undefined,否则为错误对象。 |
**示例:**
```js
screenClass.setOrientation(screen.Orientation.VERTICAL, (err, data) => {
if (err.code) {
......@@ -563,7 +617,9 @@ screenClass.setOrientation(screen.Orientation.VERTICAL, (err, data) => {
console.info('Succeeded in setting Orientation VERTICAL. data: ' + JSON.stringify(data));
})
```
### setOrientation
setOrientation(orientation: Orientation): Promise&lt;void&gt;
设置屏幕方向,使用Promise异步回调。
......@@ -575,11 +631,13 @@ setOrientation(orientation: Orientation): Promise&lt;void&gt;
| orientation | [Orientation](#orientation) | 是 | 屏幕方向。 |
**返回值:**
| 类型 | 说明 |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
**示例:**
```js
let promise = screenClass.setOrientation(screen.Orientation.VERTICAL);
promise.then((data) => {
......@@ -588,7 +646,9 @@ promise.then((data) => {
console.error('Failed to set Orientation VERTICAL. Cause: ' + JSON.stringify(err));
})
```
### setScreenActiveMode
setScreenActiveMode(modeIndex: number, callback: AsyncCallback&lt;void&gt;): void
设置屏幕当前显示模式,使用callback异步回调。
......@@ -612,7 +672,9 @@ screenClass.setScreenActiveMode(modeIndex, (err, data) => {
console.info('Succeeded in setting ScreenActiveMode 0. data: ' + JSON.stringify(data));
})
```
### setScreenActiveMode
setScreenActiveMode(modeIndex: number): Promise&lt;void&gt;
设置屏幕当前显示模式,使用Promise异步回调。
......@@ -630,6 +692,7 @@ setScreenActiveMode(modeIndex: number): Promise&lt;void&gt;
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
**示例:**
```js
var modeIndex = 0;
let promise = screenClass.setScreenActiveMode(modeIndex);
......@@ -641,6 +704,7 @@ promise.then((data) => {
```
### setDensityDpi
setDensityDpi(densityDpi: number, callback: AsyncCallback&lt;void&gt;): void;
设置屏幕的像素密度,使用callback异步回调。
......@@ -653,6 +717,7 @@ setDensityDpi(densityDpi: number, callback: AsyncCallback&lt;void&gt;): void;
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当设置屏幕的像素密度成功,err为undefined,否则为错误对象。 |
**示例:**
```js
var densityDpi = 320;
screenClass.setDensityDpi(densityDpi, (err, data) => {
......@@ -665,6 +730,7 @@ screenClass.setDensityDpi(densityDpi, (err, data) => {
```
### setDensityDpi
setDensityDpi(densityDpi: number): Promise&lt;void&gt;
设置屏幕的像素密度,使用Promise异步回调。
......@@ -682,6 +748,7 @@ setDensityDpi(densityDpi: number): Promise&lt;void&gt;
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
**示例:**
```js
var densityDpi = 320;
var promise = screenClass.setDensityDpi(densityDpi);
......@@ -693,6 +760,7 @@ promise.then((data) => {
```
## Orientation
屏幕方向枚举。
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
......@@ -706,6 +774,7 @@ promise.then((data) => {
| REVERSE_HORIZONTAL | 4 | 表示指定屏幕为反向水平方向。 |
## ScreenModeInfo
屏幕显示模式信息。
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
......
......@@ -88,7 +88,6 @@
2. 设置子窗口属性。
子窗口创建成功后,可以改变其大小、位置等,还可以根据应用需要设置窗口背景色、亮度等属性。
```js
// 2.移动子窗口位置。
......@@ -112,7 +111,6 @@
3. 加载显示子窗口的具体内容。
使用`loadContent``show`接口加载显示子窗口的具体内容。
```js
// 3.为子窗口加载对应的目标页面。
......@@ -136,7 +134,6 @@
4. 销毁子窗口。
当不再需要某些子窗口时,可根据场景的具体实现逻辑,使用`destroy`接口销毁子窗口。
```js
// 4.销毁子窗口。当不再需要某些子窗口时,可根据场景的具体实现逻辑,使用destroy接口销毁子窗口,此处以监听窗口区域外的点击事件实现子窗口的销毁。
......@@ -163,7 +160,6 @@
1. 获取主窗口对象。
沉浸式能力需要在成功获取应用主窗口对象的前提下进行。使用`window.getTopWindow`接口来获取得到主窗口。
```js
import window from '@ohos.window';
......@@ -237,7 +233,6 @@
3. 加载显示沉浸式窗口的具体内容。
使用`loadContent``show`接口加载显示沉浸式窗口的具体内容。
```js
// 3.为沉浸式窗口加载对应的目标页面。
......
......@@ -66,7 +66,6 @@
3. 为主窗口加载对应的目标页面。
通过`loadContent`接口加载主窗口的目标页面。
```ts
import Ability from '@ohos.application.Ability'
......@@ -124,7 +123,6 @@ class MainAbility extends Ability {
4. 销毁子窗口。
当不再需要某些子窗口时,可根据具体实现逻辑,使用`destroy`接口销毁子窗口。
```ts
import Ability from '@ohos.application.Ability'
......@@ -214,7 +212,6 @@ class MainAbility extends Ability {
3. 加载显示沉浸式窗口的具体内容。
通过`loadContent``show`接口加载显示沉浸式窗口的具体内容。
```ts
import Ability from '@ohos.application.Ability'
......@@ -309,7 +306,6 @@ class MainAbility extends Ability {
> **说明:**
> 虽然悬浮窗具备始终在前台显示的能力,但如果创建悬浮窗的应用任务被系统回收,仍然会导致悬浮窗从界面移除。如果想要保持悬浮窗口始终在前台显示,请申请[长时任务](../task-management/background-task-overview.md)。
```json
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册