void HiSysEventQueryCallBack::OnComplete(int32_t reason, int32_t total)
Callback object for completion of event query.
Input arguments:
@@ -123,13 +123,13 @@ In this example, you'll be instructed to query all system events.
- Implement the callback API.
- void HiSysEventQueryCallBackBase::OnQuery\(const ::std::vector& sysEvent, const ::std::vector& seq\)
+ void HiSysEventQueryCallBack::OnQuery\(const ::std::vector& sysEvent, const ::std::vector& seq\)
- void HiSysEventQueryCallBackBase::OnComplete\(int32\_t reason, int32\_t total\)
+ void HiSysEventQueryCallBack::OnComplete\(int32\_t reason, int32\_t total\)
- Invoke the query API in the corresponding service logic.
- HiSysEventManager::QueryHiSysEvent\(struct QueryArg& queryArg, std::vector& queryRules, std::shared\_ptr queryCallBack\)
+ HiSysEventManager::QueryHiSysEvent\(struct QueryArg& queryArg, std::vector& queryRules, std::shared\_ptr queryCallBack\)
```
diff --git a/en/device-dev/subsystems/subsys-dfx-hisysevent.md b/en/device-dev/subsystems/subsys-dfx-hisysevent.md
index e03fc3a05c9a4367c3b3bb46bd2e23771f21e7de..38fe0b8f890fd05ed7a00ec15a5b5c538af49646 100644
--- a/en/device-dev/subsystems/subsys-dfx-hisysevent.md
+++ b/en/device-dev/subsystems/subsys-dfx-hisysevent.md
@@ -4,7 +4,7 @@
- **[HiSysEvent Listening](subsys-dfx-hisysevent-listening.md)**
-- **[HiSysEvent Query](subsys-dfx-hisysevent-query.md)**
+- **[HiSysEvent Query](subsys-dfx-hisysevent-querying.md)**
- **[HiSysEvent Tool Usage](subsys-dfx-hisysevent-tool.md)**
diff --git a/zh-cn/application-dev/Readme-CN.md b/zh-cn/application-dev/Readme-CN.md
index 112dabfdd80ad86b9e50e1e6ee9b54eca5ffc991..e91b5d97f37a5254720235875d1a4d78b9bf29d6 100644
--- a/zh-cn/application-dev/Readme-CN.md
+++ b/zh-cn/application-dev/Readme-CN.md
@@ -16,5 +16,6 @@
- [数据管理](database/Readme-CN.md)
- [USB服务](usb/Readme-CN.md)
- [DFX](dfx/Readme-CN.md)
+- [WebGL](webgl/Readme-CN.md)
- [开发参考](reference/Readme-CN.md)
diff --git a/zh-cn/application-dev/ability/Readme-CN.md b/zh-cn/application-dev/ability/Readme-CN.md
index 202dc4ca4253a99c5cb7a91f724b85cd2656fcdf..ae4403f9cf0425e51eccd71df27651e875911c79 100644
--- a/zh-cn/application-dev/ability/Readme-CN.md
+++ b/zh-cn/application-dev/ability/Readme-CN.md
@@ -5,4 +5,6 @@
* [基于Native的Data Ability创建与访问](data-ability-creating-accessing.md)
* [CommonEvent开发指南](common-event.md)
* [Notification开发指南](notification.md)
+* [应用迁移开发指导](ability-continuation.md)
+* [Ability助手使用指导](ability-assistant-guidelines.md)
diff --git a/zh-cn/application-dev/ability/ability-assistant-guidelines.md b/zh-cn/application-dev/ability/ability-assistant-guidelines.md
new file mode 100644
index 0000000000000000000000000000000000000000..6db0306ab489467b9e7b39065c2117822fc2c8e2
--- /dev/null
+++ b/zh-cn/application-dev/ability/ability-assistant-guidelines.md
@@ -0,0 +1,103 @@
+# Ability助手使用指导
+
+Ability assistant(Ability助手,简称为aa)是实现应用、原子化服务及测试用例启动功能,为开发者提供基本的调试及测试应用的工具。通过该工具,开发者可以在hdc shell中,发出命令以执行各种系统操作,比如启动Ability、强制停止进程、打印Ability相关信息等。
+
+## 开发指导
+
+工具已在设备环境预置,开发者可直接通过命令行调用。
+
+### 查询相关
+
+- **help**
+
+ 用于显示aa相关的帮助信息。
+
+ **返回值:**
+
+ 返回对应的帮助信息。
+
+ **使用方法:**
+
+ ```
+ aa help
+ ```
+
+### Ability相关
+
+- **start**
+
+ 用于启动一个ability。
+
+ | 参数 | 参数说明 |
+ | --------- | ---------------------- |
+ | -h/--help | 帮助信息。 |
+ | -d | 可选参数,device id |
+ | -a | 必选参数,ability name |
+ | -b | 必选参数,bundle name |
+ | -D | 可选参数,调试模式 |
+
+ **返回值:**
+
+ 当成功启动Ability时,返回“start ability successfully.”;当启动失败时,返回“error: failed to start ability.”。
+
+ 使用方法:
+
+ ```
+aa start [-d ] -a -b [-D]
+ ```
+
+- **stop-service**
+
+ 用于停止Service Ability。
+
+ | 参数 | 参数说明 |
+ | --------- | ------------------------ |
+ | -h/--help | 帮助信息。 |
+ | -d | 可选参数,device id。 |
+ | -a | 必选参数,ability name。 |
+ | -b | 必选参数,bundle name。 |
+
+ **返回值:**
+
+ 当成功停止Service Ability时,返回“stop service ability successfully.”;当停止失败时,返回“error: failed to stop service ability.”。
+
+ 使用方法:
+
+ ```
+aa stop-service [-d ] -a -b
+ ```
+
+- **dump**
+
+ 用于打印Ability的相关信息。
+
+ | 参数 | 参数说明 |
+ | ---------------------- | -------------------------------------- |
+ | -h/--help | 帮助信息。 |
+ | -a/--all | 打印所有mission内的Ability。 |
+ | -s/--stack \ | 打印指定mission stack内的Ability。 |
+ | -m/--mission \ | 打印指定mission内的Ability。 |
+ | -l/--stack-list | 打印每个mission stack内的mission列表。 |
+ | -u/--ui | 打印system ui Ability。 |
+ | -e/--serv | 打印Service Ability。 |
+ | -d/--data | 打印Data Ability。 |
+
+ **使用方法:**
+
+ ```
+ aa dump -a
+ ```
+
+- **force-stop**
+
+ 通过bundle name强制停止一个进程。
+
+ **返回值:**
+
+ 当成功强制停止该进程时,返回“force stop process successfully.”;当强制停止失败时,返回“error: failed to force stop process.”。
+
+ **使用方法:**
+
+ ```
+ aa force-stop
+ ```
\ No newline at end of file
diff --git a/zh-cn/application-dev/connectivity/ipc-rpc.md b/zh-cn/application-dev/connectivity/ipc-rpc.md
deleted file mode 100644
index b28f4d1c71d5cfa7c7d09ca22ca904cb8fa85ca3..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/connectivity/ipc-rpc.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# IPC与RPC通信
-
-
-- **[IPC与RPC通信概述](ipc-rpc-overview.md)**
-
-- **[IPC与RPC通信开发指导](ipc-rpc-development-guideline.md)**
-
-- **[远端状态订阅开发实例](subscribe-remote-state.md)**
\ No newline at end of file
diff --git a/zh-cn/application-dev/dfx/Readme-CN.md b/zh-cn/application-dev/dfx/Readme-CN.md
index 4962e5b9907be3cf6a11db0b10aa6fccb5c4858a..3743ff1aa3c06330bd6a720f55fd0e0c8b9e8b78 100644
--- a/zh-cn/application-dev/dfx/Readme-CN.md
+++ b/zh-cn/application-dev/dfx/Readme-CN.md
@@ -3,4 +3,10 @@
- 应用事件打点
- [应用事件打点概述](hiappevent-overview.md)
- [应用事件打点开发指导](hiappevent-guidelines.md)
+- 性能打点跟踪
+ - [性能打点跟踪概述](hitracemeter-overview.md)
+ - [性能打点跟踪开发指导](hitracemeter-guidelines.md)
+- 分布式跟踪
+ - [分布式跟踪概述](hitracechain-overview.md)
+ - [分布式跟踪开发指导](hitracechain-guidelines.md)
diff --git a/zh-cn/application-dev/dfx/hitracechain-guidelines.md b/zh-cn/application-dev/dfx/hitracechain-guidelines.md
new file mode 100644
index 0000000000000000000000000000000000000000..4d0b1759fa649cbaf5f02b46f50034353ed00444
--- /dev/null
+++ b/zh-cn/application-dev/dfx/hitracechain-guidelines.md
@@ -0,0 +1,58 @@
+# 分布式跟踪开发指导
+
+## 场景介绍
+
+HiTraceChain为开发者提供业务流程调用链跟踪的维测接口,帮助开发者迅速获取指定业务流程调用链的运行日志,定位跨设备/跨进程/跨线程的故障问题。
+
+## 接口说明
+
+分布式跟踪接口由hiTraceChain模块提供,详细API请参考[分布式跟踪API参考](../reference/apis/js-apis-hitracechain.md)。
+
+**分布式跟踪接口功能介绍:**
+
+| 接口名 | 返回值 | 描述 |
+| ------------------------------------------------------------------------------------------------------------------- | -------------- | ------------ |
+| hiTraceChain.begin(name: string, flags: number = HiTraceFlag.DEFAULT) | HiTraceId | 开始跟踪。 |
+| hiTraceChain.tracepoint(mode: HiTraceCommunicationMode, type: HiTraceTracepointType, id: HiTraceId, msg?: string) | void | 信息埋点。 |
+| hiTraceChain.end(id: HiTraceId) | void | 结束跟踪。 |
+
+## 开发步骤
+
+在应用启动执行页面加载后,开始分布式跟踪,完成业务之后,停止分布式跟踪。
+
+1. 新建一个JS应用工程,在“Project”窗口点击“entry > src > main > js > default > pages > index”,打开工程中的“index.js”文件,在页面执行加载后,在实际业务逻辑中调用hiTraceChain的API,进行分布式跟踪,示例代码如下:
+
+ ```
+ import hiTraceChain from '@ohos.hiTraceChain'
+
+ export default {
+ data: {
+ title: ""
+ },
+ onInit() {
+ this.title = this.$t('strings.world');
+
+ // 1、开启分布式跟踪
+ let asyncTraceId = hiTraceChain.begin("business", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC | hiTraceChain.HiTraceFlag.DONOT_CREATE_SPAN);
+
+ // 2、业务流程开始
+ console.log(`business start`);
+
+ // 3、埋点操作
+ hiTraceChain.tracepoint(hiTraceChain.HiTraceCommunicationMode.THREAD, hiTraceChain.HiTraceTracepointType.SS, asyncTraceId, "Just a example");
+
+ // 4、业务流程执行中
+ console.log(`business running`);
+
+ // 5、业务流程结束
+ console.log(`business end`);
+
+ // 6、停止跟踪
+ hiTraceChain.end(asyncTraceId);
+ }
+ }
+ ```
+
+2. 运行项目,点击应用界面上的运行按钮,即可通过日志信息分析实际业务。
+
+
diff --git a/zh-cn/application-dev/dfx/hitracechain-overview.md b/zh-cn/application-dev/dfx/hitracechain-overview.md
new file mode 100644
index 0000000000000000000000000000000000000000..a95750b019e8c20a7043a44f5cce6fde290727b4
--- /dev/null
+++ b/zh-cn/application-dev/dfx/hitracechain-overview.md
@@ -0,0 +1,17 @@
+# 分布式跟踪概述
+
+hiTraceChain是基于云计算分布式跟踪调用链思想,在端侧业务流程(涉及跨线程、跨进程、跨设备)中的一种轻量级实现。
+
+## 基本概念
+
+- **chainId**
+
+ 分布式跟踪标识,属于HiTraceId的一部分,用于标识当前跟踪的业务流程。
+
+## 运作机制
+
+hiTraceChain在业务控制面流程中,生成和传递唯一跟踪标识,在业务流程中输出的各类信息中(包括应用事件、系统时间、日志等)记录该跟踪标识。在调试、问题定位过程中,开发者可以通过该唯一跟踪标识将本次业务流程端到端的各类信息快速关联起来。
+
+## 约束与限制
+
+hiTraceChain API提供的相关接口全部为同步接口。
\ No newline at end of file
diff --git a/zh-cn/application-dev/dfx/hitracemeter-guidelines.md b/zh-cn/application-dev/dfx/hitracemeter-guidelines.md
new file mode 100644
index 0000000000000000000000000000000000000000..fa287bd515c28516dbb8715c4259fcfed83bd48d
--- /dev/null
+++ b/zh-cn/application-dev/dfx/hitracemeter-guidelines.md
@@ -0,0 +1,73 @@
+# 性能打点跟踪开发指导
+
+## 场景介绍
+
+HiTraceMeter为开发者提供系统性能打点接口。开发者通过在自己的业务逻辑中的关键代码位置调用HiTraceMeter接口提供的API接口,能够有效追踪进程轨迹、查看系统性能。
+
+## 接口说明
+
+性能打点跟踪接口由hiTraceMeter模块提供,详细API请参考[性能打点跟踪API参考](../reference/apis/js-apis-hitracemeter.md)。
+
+**性能打点跟踪接口功能介绍:**
+
+| 接口名 | 返回值 | 描述 |
+| ---------------------------------------------------------------------------- | --------- | ------------ |
+| hiTraceMeter.startTrace(name: string, taskId: number, expectedTime?: number) | void | 标记一个预追踪耗时任务的开始。如果有多个相同name的任务需要追踪或者对同一个任务要追踪多次,并且任务同时被执行,则每次调用startTrace的taskId不相同。如果具有相同name的任务是串行执行的,则taskId可以相同。 |
+| hiTraceMeter.finishTrace(name: string, taskId: number) | void | name和taskId必须与流程开始的hiTraceMeter.startTrace对应参数值保持一致。 |
+| hiTraceMeter.traceByValue(name: string, value: number) | void | 用来标记一个预追踪的数值变量,该变量的数值会不断变化。|
+
+## 开发步骤
+
+在应用启动执行页面加载后,开始分布式跟踪,完成业务之后,停止分布式跟踪。
+
+1. 新建一个JS应用工程,在“Project”窗口点击“entry > src > main > js > default > pages > index”,打开工程中的“index.js”文件,在页面执行加载后,在自己的业务中调用hiTraceMeter的接口,进行性能打点追踪,示例代码如下:
+
+ ```js
+ import hiTraceMeter from '@ohos.hiTraceMeter'
+
+ export default {
+ data: {
+ title: ""
+ },
+ onInit() {
+ this.title = this.$t('strings.world');
+
+ //从startTrace到finishTrace流程的耗时期望为5ms
+ hiTraceMeter.startTrace("business", 1);
+ hiTraceMeter.startTrace("business", 1, 5);
+
+ //追踪并行执行的同名任务
+ hiTraceMeter.startTrace("business", 1);
+ //业务流程
+ console.log(`business running`);
+ hiTraceMeter.startTrace("business", 2); //第二个追踪的任务开始,同时第一个追踪的同名任务还没结束,出现了并行执行,对应接口的taskId需要不同。
+ //业务流程
+ console.log(`business running`);
+ hiTraceMeter.finishTrace("business", 1);
+ //业务流程
+ console.log(`business running`);
+ hiTraceMeter.finishTrace("business", 2);
+
+ //追踪串行执行的同名任务
+ hiTraceMeter.startTrace("business", 1);
+ //业务流程
+ console.log(`business running`);
+ hiTraceMeter.finishTrace("business", 1); //第一个追踪的任务结束
+ //业务流程
+ console.log(`business running`);
+ hiTraceMeter.startTrace("business", 1); //第二个追踪的同名任务开始,同名的待追踪任务串行执行。
+ //业务流程
+ console.log(`business running`);
+
+ let traceCount = 3;
+ hiTraceMeter.traceByValue("myTestCount", traceCount);
+ traceCount = 4;
+ hiTraceMeter.traceByValue("myTestCount", traceCount);
+ hiTraceMeter.finishTrace("business", 1);
+ }
+ }
+ ```
+
+2. 运行项目,点击应用界面上的运行按钮,即可通过日志信息分析实际业务。
+
+
diff --git a/zh-cn/application-dev/dfx/hitracemeter-overview.md b/zh-cn/application-dev/dfx/hitracemeter-overview.md
new file mode 100644
index 0000000000000000000000000000000000000000..a6144101ad710c69bf7a8833580c2a4142438df0
--- /dev/null
+++ b/zh-cn/application-dev/dfx/hitracemeter-overview.md
@@ -0,0 +1,18 @@
+# 性能打点跟踪概述
+
+hiTraceMeter是开发者用于追踪进程轨迹,度量程序执行性能的一种工具,基于内核的ftrace机制,提供给用户态应用代码执行时长度量打点的能力。开发者通过使用hiTraceMeter API在程序中打点,并使用hiTraceMeter提供的命令行工具采集跟踪数据。
+
+## 基本概念
+
+- **hiTraceMeter Tag**
+
+ 跟踪数据使用类别分类,称作hiTraceMeter Tag或hiTraceMeter Category,一般每个软件子系统对应一个Tag,该Tag在打点API中以类别TAg参数传入。hiTraceMeter命令行工具采集跟踪数据时,只采集给定的Tag类别选项指定的跟踪数据。
+
+## 运作机制
+
+- 应用程序通过hiTraceMeter函数接口进行打点,hiTraceMeter函数将跟踪数据通过内核sysfs文件接口输出到内核的ftrace数据缓冲区。
+- hiTraceMeter命令行工具读取内核ftrace缓冲区中的跟踪数据,将文本格式的跟踪数据保存到设备侧的文件中。
+
+## 约束与限制
+
+- 由于JS程序的异步IO特性,现在hiTraceMeter只提供了异步接口。
\ No newline at end of file
diff --git a/zh-cn/application-dev/quick-start/package-structure.md b/zh-cn/application-dev/quick-start/package-structure.md
index fa6b27f5a92b36d8bd2ce9f80f9905e975c1c4ea..ec612e6e390a83481a4f3332f368baa742183e25 100644
--- a/zh-cn/application-dev/quick-start/package-structure.md
+++ b/zh-cn/application-dev/quick-start/package-structure.md
@@ -231,7 +231,7 @@ module对象包含HAP包的配置信息,内部结构说明参见表11。
| shortcuts | 表示应用的快捷方式信息。采用对象数组格式,其中的每个元素表示一个快捷方式对象。参考表25。 | 对象数组 | 可缺省,缺省值为空 |
| reqPermissions | 表示应用运行时向系统申请的权限。参考表21。 | 对象数组 | 可缺省,缺省值为空 |
| colorMode | 表示应用自身的颜色模式。 dark:表示按照深色模式选取资源。 light:表示按照浅色模式选取资源。 auto:表示跟随系统的颜色模式值选取资源。 该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。 | 字符串 | 可缺省,缺省值为"auto" |
-| distroFilter | 表示应用的分发规则。 该标签用于定义HAP包对应的细分设备规格的分发策略,以便在应用市场进行云端分发应用包时做精准匹配。该标签可配置的分发策略维度包括API Verion、屏幕形状、屏幕分辨率。在进行分发时,通过deviceType与这三个属性的匹配关系,唯一确定一个用于分发到设备的HAP。参考表21。 | 对象数组 | 可缺省,缺省值为空。但当应用中包含多个entry模块时,必须配置该标签。 |
+| distroFilter | 表示应用的分发规则。 该标签用于定义HAP包对应的细分设备规格的分发策略,以便在应用市场进行云端分发应用包时做精准匹配。该标签可配置的分发策略维度包括API Verion、屏幕形状、屏幕分辨率。在进行分发时,通过deviceType与这三个属性的匹配关系,唯一确定一个用于分发到设备的HAP。参考表29。 | 对象数组 | 可缺省,缺省值为空。但当应用中包含多个entry模块时,必须配置该标签。 |
| reqCapabilities | 表示运行应用程序所需的设备能力 | 字符串数组 | 可缺省,缺省为空 |
| commonEvents | 静态广播,参考表33。 | 对象数组 | 可缺省,缺省为空 |
| allowClassMap | HAP的元信息。标记值为true或false。如果标记值为true,则hap使用OpenHarmony框架提供的Java对象代理机制。默认值为false。 | 布尔值 | 不可缺省,缺省值为false |
@@ -669,19 +669,19 @@ forms示例:
| policy | 表示该子属性取值的黑白名单规则。配置为“exclude”或“include”。“include”表示该字段取值为白名单,满足value枚举值匹配规则的表示匹配该属性。 | 字符串 | 可缺省,缺省值为空。 |
| value | 支持的取值为API Version存在的整数值,例如4、5、6。场景示例:某应用,针对相同设备型号,同时在网的为使用API 5和API 6开发的两个软件版本,则允许上架2个entry类型的安装包,分别支持到对应设备侧软件版本的分发。 | 数组 | 可缺省,缺省值为空。 |
-表31 screenShape对象的内部结构说明
+表31 screenShape对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | ------------------------------------------------------------ | -------- | -------------------- |
| policy | 表示该子属性取值的黑白名单规则。配置为“exclude”或“include”。“include”表示该字段取值为白名单,满足value枚举值匹配规则的表示匹配该属性。 | 字符串 | 可缺省,缺省值为空。 |
-| value | 支持的取值为API Version存在的整数值,例如4、5、6。场景示例:某应用,针对相同设备型号,同时在网的为使用API 5和API 6开发的两个软件版本,则允许上架2个entry类型的安装包,分别支持到对应设备侧软件版本的分发。 | 数组 | 可缺省,缺省值为空。 |
+| value | 支持的取值为circle(圆形)、rect(矩形)。场景示例:针对智能穿戴设备,可为圆形表盘和矩形表盘分别提供不同的HAP。 | 数组 | 可缺省,缺省值为空。 |
表32 screenWindow对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------- | ------------------------------------------------------------ | -------- | -------------------- |
| policy | 表示该子属性取值的黑白名单规则。配置为“exclude”或“include”。“include”表示该字段取值为白名单,满足value枚举值匹配规则的表示匹配该属性。 | 字符串 | 可缺省,缺省值为空。 |
-| value | 支持的取值为API Version存在的整数值,例如4、5、6。场景示例:某应用,针对相同设备型号,同时在网的为使用API 5和API 6开发的两个软件版本,则允许上架2个entry类型的安装包,分别支持到对应设备侧软件版本的分发。 | 数组 | 可缺省,缺省值为空。 |
+| value | 单个字符串的取值格式为:“宽 * 高”,取值为整数像素值,例如“454 * 454”。 | 数组 | 可缺省,缺省值为空。 |
distroFilter示例:
diff --git a/zh-cn/application-dev/reference/apis/Readme-CN.md b/zh-cn/application-dev/reference/apis/Readme-CN.md
index 6de6ed329ebd40cebb034a9a80dfa66b8ca8aa46..837523f1a20f18fed4ab7fb79c4aa21929dda1e5 100644
--- a/zh-cn/application-dev/reference/apis/Readme-CN.md
+++ b/zh-cn/application-dev/reference/apis/Readme-CN.md
@@ -18,9 +18,11 @@
- 媒体
- [音频管理](js-apis-audio.md)
- [媒体服务](js-apis-media.md)
+ - [图片处理](js-apis-image.md)
- 安全
- [用户认证](js-apis-useriam-userauth.md)
- [访问控制](js-apis-abilityAccessCtrl.md)
+ - [通用密钥库系统](js-apis-huks.md)
- 数据管理
- [轻量级存储](js-apis-data-preferences.md)
- [轻量级存储(废弃 since 8)](js-apis-data-storage.md)
@@ -46,6 +48,7 @@
- [SIM卡管理](js-apis-sim.md)
- [网络搜索](js-apis-radio.md)
- [observer](js-apis-observer.md)
+ - [蜂窝数据](js-apis-telephony-data.md)
- 网络与连接
- [WLAN](js-apis-wifi.md)
- [Bluetooth](js-apis-bluetooth.md)
@@ -55,6 +58,7 @@
- [屏幕亮度](js-apis-brightness.md)
- [电量信息](js-apis-battery-info.md)
- [系统电源管理](js-apis-power.md)
+ - [热管理](js-apis-thermal.md)
- [Runninglock锁](js-apis-runninglock.md)
- [设备信息](js-apis-device-info.md)
- [系统属性](js-apis-system-parameter.md)
@@ -74,6 +78,7 @@
- [动画](js-apis-basic-features-animator.md)
- [WebGL](js-apis-webgl.md)
- [WebGL2](js-apis-webgl2.md)
+ - [屏幕截图](js-apis-screenshot.md)
- DFX
- [应用打点](js-apis-hiappevent.md)
- [性能打点](js-apis-hitracemeter.md)
diff --git a/zh-cn/application-dev/reference/apis/js-apis-ability-context.md b/zh-cn/application-dev/reference/apis/js-apis-ability-context.md
index 020beeb11908edf8cb8f32d6671add43815ba698..e55c684dc866fad4c8df94b1229cae6301b72f94 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-ability-context.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-ability-context.md
@@ -1,12 +1,48 @@
# AbilityContext
+- [使用说明](#使用说明)
+- [属性](#属性)
+- [startAbility](#startAbility)
+- [startAbility](#startAbility)
+- [startAbility](#startAbility)
+- [startAbilityForResult](#startAbilityForResult)
+- [startAbilityForResult](#startAbilityForResult)
+- [startAbilityForResult](#startAbilityForResult)
+- [terminateSelf](#terminateSelf)
+- [terminateSelf](#terminateSelf)
+- [terminateSelfWithResult](#terminateSelfWithResult)
+- [terminateSelfWithResult](#terminateSelfWithResult)
+- [startAbilityByCall](#startAbilityByCall)
+- [requestPermissionsFromUser](#requestPermissionsFromUser)
+- [requestPermissionsFromUser](#requestPermissionsFromUser)
+- [setMissionLabel](#setMissionLabel)
+- [setMissionLabel](#setMissionLabel)
+
+
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 本模块首批接口从API 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+> 本模块首批接口从API 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Ability的上下文环境,继承自Context。
+## 使用说明
+
+
+在使用AbilityContext的功能前,需要通过Ability子类实例获取。
+
+
+
+```
+import Ability from '@ohos.application.Ability'
+class MainAbility extends Ability {
+ onWindowStageCreate(windowStage) {
+ let context = this.context;
+ }
+}
+```
+
+
## 属性
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
@@ -42,7 +78,37 @@ startAbility(want: Want, callback: AsyncCallback<void>): void
## startAbility
-startAbility(want: Want): Promise<void>;
+startAbility(want: Want, options: StartOptions, callback: AsyncCallback<void>): void
+
+启动Ability。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | want | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | 启动Ability的want信息。 |
+ | options | StartOptions | 是 | 启动Ability所携带的参数。 |
+ | callback | AsyncCallback<void> | 是 | callback形式返回启动结果。 |
+
+- 示例:
+
+ ```
+ var want = {
+ "deviceId": "",
+ "bundleName": "com.extreme.test",
+ "abilityName": "com.extreme.test.MainAbility"
+ };
+ var options = {
+ windowMode: 0,
+ };
+ this.context.startAbility(want, options, (error) => {
+ console.log("error.code = " + error.code)
+ })
+ ```
+
+
+## startAbility
+
+startAbility(want: Want, options: StartOptions): Promise<void>;
启动Ability。通过Promise返回结果。
@@ -50,6 +116,7 @@ startAbility(want: Want): Promise<void>;
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | 启动Ability的want信息。 |
+ | options | StartOptions | 是 | 启动Ability所携带的参数。 |
- 返回值:
| 类型 | 说明 |
@@ -63,7 +130,10 @@ startAbility(want: Want): Promise<void>;
"bundleName": "com.extreme.test",
"abilityName": "com.extreme.test.MainAbility"
};
- this.context.startAbility(want)
+ var options = {
+ windowMode: 0,
+ };
+ this.context.startAbility(want, options)
.then((data) => {
console.log('Operation successful.')
}).catch((error) => {
@@ -82,7 +152,7 @@ startAbilityForResult(want: Want, callback: AsyncCallback<AbilityResult>):
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |[Want](js-apis-featureAbility.md#Want类型说明) | 是 | 启动Ability的want信息。 |
- | callback | Callback<[AbilityResult](js-apis-featureAbility.md#abilityresult)> | 是 | 执行结果回调函数。 |
+ | callback | AsyncCallback<[AbilityResult](js-apis-featureAbility.md#abilityresult)> | 是 | 执行结果回调函数。 |
- 示例:
@@ -96,17 +166,47 @@ startAbilityForResult(want: Want, callback: AsyncCallback<AbilityResult>):
);
```
+## startAbilityForResult
+
+startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback<AbilityResult>): void;
+
+启动Ability并在结束的时候返回执行结果。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | want |[Want](js-apis-featureAbility.md#Want类型说明) | 是 | 启动Ability的want信息。 |
+ | options | StartOptions | 是 | 启动Ability所携带的参数。 |
+ | callback | AsyncCallback<[AbilityResult](js-apis-featureAbility.md#abilityresult)> | 是 | 执行结果回调函数。 |
+
+
+- 示例:
+ ```
+ var options = {
+ windowMode: 0,
+ };
+ this.context.startAbilityForResult(
+ {bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo2"}, options,
+ (error, result) => {
+ console.log("startAbilityForResult AsyncCallback is called, error.code = " + error.code)
+ console.log("startAbilityForResult AsyncCallback is called, result.resultCode = " + result.resultCode)
+ }
+ );
+ ```
+
## startAbilityForResult
-startAbilityForResult(want: Want): Promise<AbilityResult>;
+startAbilityForResult(want: Want, options: StartOptions): Promise<AbilityResult>;
启动Ability并在结束的时候返回执行结果。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
- | want | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | 启动Ability的want信息。 |
+ | want | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | 启动Ability的want信息。 |
+ | options | StartOptions | 是 | 启动Ability所携带的参数。 |
+
- 返回值
| 类型 | 说明 |
@@ -115,7 +215,10 @@ startAbilityForResult(want: Want): Promise<AbilityResult>;
- 示例:
```
- this.context.startAbilityForResult({bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo2"}).then((result) => {
+ var options = {
+ windowMode: 0,
+ };
+ this.context.startAbilityForResult({bundleName: "com.extreme.myapplication", abilityName: "MainAbilityDemo2"}, options).then((result) => {
console.log("startAbilityForResult Promise.resolve is called, result.resultCode = " + result.resultCode)
}, (error) => {
console.log("startAbilityForResult Promise.Reject is called, error.code = " + error.code)
@@ -132,7 +235,7 @@ terminateSelf(callback: AsyncCallback<void>): void;
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
- | callback | AsyncCallback<void> | 否 | 回调函数,返回接口调用是否成功的结果。 |
+ | callback | AsyncCallback<void> | 是 | 回调函数,返回接口调用是否成功的结果。 |
- 示例:
```
@@ -173,7 +276,7 @@ terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback<voi
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| parameter | [AbilityResult](js-apis-featureAbility.md#abilityresult) | 是 | 返回给调用startAbilityForResult 接口调用方的相关信息。 |
- | callback | Callback<void> | 否 | callback形式返回停止结果 |
+ | callback | AsyncCallback<void> | 是 | callback形式返回停止结果。 |
- 示例:
```
@@ -202,7 +305,7 @@ terminateSelfWithResult(parameter: AbilityResult): Promise<void>;
- 返回值:
| 类型 | 说明 |
| -------- | -------- |
- | Promise<void> | promise形式返回停止结果 |
+ | Promise<void> | promise形式返回停止结果。 |
- 示例:
```
@@ -215,3 +318,138 @@ terminateSelfWithResult(parameter: AbilityResult): Promise<void>;
}
)
```
+
+
+## startAbilityByCall
+
+startAbilityByCall(want: Want): Promise<Caller>;
+
+获取指定通用组件服务端的caller通信接口, 并且将指定通用组件服务端拉起并切换到后台。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | want | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | 传入需要启动的ability的信息,包含ability名称、包名、设备ID,设备ID缺省或为空表示启动本地ability。 |
+
+- 返回值:
+ | 类型 | 说明 |
+ | -------- | -------- |
+ | Promise<> | 获取要通讯的caller对象。 |
+
+- 示例:
+
+ ```
+ import Ability from '@ohos.application.Ability';
+ var caller;
+ export default class MainAbility extends Ability {
+ onWindowStageCreate(windowStage) {
+ this.context.startAbilityByCall({
+ bundleName: "com.example.myservice",
+ abilityName: "com.example.myservice.MainAbility",
+ deviceId: ""
+ }).then((obj) => {
+ caller = obj;
+ console.log('Caller GetCaller Get ' + call);
+ }).catch((e) => {
+ console.log('Caller GetCaller error ' + e);
+ });
+ }
+ }
+ ```
+
+
+## requestPermissionsFromUser
+
+requestPermissionsFromUser(permissions: Array<string>, requestCallback: AsyncCallback<PermissionRequestResult>) : void;
+
+拉起弹窗请求用户授权。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | permissions | Array<string> | 是 | 权限列表。 |
+ | callback | AsyncCallback<[PermissionRequestResult](js-apis-permissionrequestresult.md)> | 是 | 回调函数,返回接口调用是否成功的结果。 |
+
+- 示例:
+
+ ```
+ this.context.requestPermissionsFromUser(permissions,(result) => {
+ console.log('requestPermissionsFromUserresult:' + JSON.stringfy(result));
+ });
+ ```
+
+
+## requestPermissionsFromUser
+
+requestPermissionsFromUser(permissions: Array<string>) : Promise<PermissionRequestResult>;
+
+拉起弹窗请求用户授权。通过Promise返回结果。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | permissions | Array<string> | 是 | 权限列表。 |
+
+- 返回值:
+ | 类型 | 说明 |
+ | -------- | -------- |
+ | Promise<[PermissionRequestResult](js-apis-permissionrequestresult.md)> | 返回一个Promise,包含接口的结果。 |
+
+- 示例:
+
+ ```
+ this.context.requestPermissionsFromUser(permissions).then((data) => {
+ console.log('success:' + JSON.stringfy(data));
+ }).catch((error) => {
+ console.log('failed:' + JSON.stringfy(error));
+ });
+ ```
+
+
+## setMissionLabel
+
+setMissionLabel(label: string, callback:AsyncCallback<void>): void;
+
+设置ability在任务中显示的名称。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | label | string | 是 | 显示名称。 |
+ | callback | AsyncCallback<void> | 是 | 回调函数,返回接口调用是否成功的结果。 |
+
+- 示例:
+
+ ```
+ this.context.setMissionLabel("test",(result) => {
+ console.log('requestPermissionsFromUserresult:' + JSON.stringfy(result));
+ });
+ ```
+
+
+## setMissionLabel
+
+setMissionLabel(label: string, callback:AsyncCallback<void>): void;
+
+设置ability在任务中显示的名称。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | label | string | 是 | 显示名称。 |
+
+- 返回值:
+ | 类型 | 说明 |
+ | -------- | -------- |
+ | Promise<void> | 返回一个Promise,包含接口的结果。 |
+
+- 示例:
+
+ ```
+ this.context.setMissionLabel("test").then((data) => {
+ console.log('success:' + JSON.stringfy(data));
+ }).catch((error) => {
+ console.log('failed:' + JSON.stringfy(error));
+ });
+ ```
+
diff --git a/zh-cn/application-dev/reference/apis/js-apis-abilityrunninginfo.md b/zh-cn/application-dev/reference/apis/js-apis-abilityrunninginfo.md
new file mode 100644
index 0000000000000000000000000000000000000000..d355f7b81a9450453072645310d519758b3a1ac3
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-abilityrunninginfo.md
@@ -0,0 +1,52 @@
+# AbilityRunningInfo
+
+- [使用说明](#使用说明)
+- [属性](#属性)
+- [abilityManager.AbilityState](#abilityManagerAbilityState)
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API 8开始支持。
+
+
+Ability运行相关信息。
+
+
+## 使用说明
+
+
+通过abilityManager中getAbilityRunningInfos方法获取。
+
+
+
+```
+import abilitymanager from '@ohos.application.abilityManager';
+abilitymanager.getAbilityRunningInfos((err,data) => {
+ console.log("getAbilityRunningInfos err: " + err + " data: " + JSON.stringify(data));
+});
+```
+
+
+## 属性
+
+ | 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| -------- | -------- | -------- | -------- | -------- |
+| ability | ElementName | 是 | 否 | Ability匹配信息。 |
+| pid | number | 是 | 否 | 进程ID。 |
+| uid | number | 是 | 否 | 用户ID。 |
+| processName | string | 是 | 否 | 进程名称。 |
+| startTime | number | 是 | 否 | Ability启动时间。 |
+| abilityState | [abilityManager.AbilityState](#abilitymanager-abilitystate) | 是 | 否 | Ability状态。 |
+
+
+## abilityManager.AbilityState
+
+Ability的状态信息。
+
+ | 名称 | 值 | 说明 |
+| -------- | -------- | -------- |
+| INITIAL | 0 | 表示ability为initial状态。 |
+| FOREGROUND | 9 | 表示ability为foreground状态。 |
+| BACKGROUND | 10 | 表示ability为background状态。 |
+| FOREGROUNDING | 11 | 表示ability为foregrounding状态。 |
+| BACKGROUNDING | 12 | 表示ability为backgrounding状态。 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-abilitystagecontext.md b/zh-cn/application-dev/reference/apis/js-apis-abilitystagecontext.md
new file mode 100644
index 0000000000000000000000000000000000000000..8018f3b36e3f696d2de71ac4f1b2ce7486cadfe0
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-abilitystagecontext.md
@@ -0,0 +1,36 @@
+# AbilityStageContext
+
+- [使用说明](#使用说明)
+- [属性](#属性)
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API 9开始支持。
+
+
+AbilityStage的上下文环境,继承自[Context](js-apis-application-context.md)。
+
+
+## 使用说明
+
+
+通过AbilityStage实例来获取。
+
+
+
+```
+import AbilityStage from '@ohos.application.AbilityStage';
+class MyAbilityStage extends AbilityStage {
+ onCreate() {
+ let abilityStageContext = this.context;
+ }
+}
+```
+
+
+## 属性
+
+ | 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| -------- | -------- | -------- | -------- | -------- |
+| currentHapModuleInfo | HapModuleInfo | 是 | 否 | AbilityStage对应的ModuleInfo对象。 |
+| config | [Configuration](js-apis-configuration.md) | 是 | 否 | 环境变化对象。 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-ability.md b/zh-cn/application-dev/reference/apis/js-apis-application-ability.md
new file mode 100644
index 0000000000000000000000000000000000000000..02f6373ad19beb503e915562a2ac976ac54275eb
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-application-ability.md
@@ -0,0 +1,522 @@
+# Ability
+
+- [导入模块](#导入模块)
+- [属性](#属性)
+- [onCreate](#onCreate)
+- [onWindowStageCreate](#onWindowStageCreate)
+- [onWindowStageDestroy](#onWindowStageDestroy)
+- [onWindowStageRestore](#onWindowStageRestore)
+- [onDestroy](#onDestroy)
+- [onForeground](#onForeground)
+- [onBackground](#onBackground)
+- [onContinue](#onContinue)
+- [onNewWant](#onNewWant)
+- [onConfigurationUpdated](#onConfigurationUpdated)
+- [Caller](#Caller)
+ - [call](#call)
+ - [callWithResult](#callWithResult)
+ - [release](#release)
+ - [onRelease](#onRelease)
+- [Callee](#Callee)
+ - [on](#on)
+ - [off](#off)
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 从API Version 8 开始支持。
+
+
+Ability模块,提供对Ability生命周期、上下文环境等调用管理。
+
+
+## 导入模块
+
+
+```
+import Ability from '@ohos.application.Ability';
+```
+
+
+## 属性
+
+ | 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| -------- | -------- | -------- | -------- | -------- |
+| context | [AbilityContext](js-apis-ability-context.md) | 是 | 否 | 上下文。 |
+| launchWant | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | 否 | Ability启动时的参数。 |
+| lastRequestWant | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | 否 | Ability最后请求时的参数。 |
+
+
+## onCreate
+
+onCreate(want: Want,param:LaunchParam): void
+
+Ability创建时回调,执行初始化业务逻辑操作。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | want | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | 当前Ability的Want类型信息,包括ability名称、bundle名称等。 |
+ | param | LaunchParam | 是 | 创建 ability、上次异常退出的原因信息。 |
+
+- 示例:
+
+ ```
+ class myAbility extends Ability {
+ onCreate(want, param) {
+ console.log('onCreate, want:' + want.abilityName);
+ }
+ }
+ ```
+
+
+## onWindowStageCreate
+
+onWindowStageCreate(windowStage: window.WindowStage): void
+
+当WindowStage创建后调用。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | windowStage | window.WindowStage | 是 | WindowStage相关信息。 |
+
+- 示例:
+
+ ```
+ class myAbility extends Ability {
+ onWindowStageCreate(windowStage) {
+ console.log('onWindowStageCreate');
+ }
+ }
+ ```
+
+
+## onWindowStageDestroy
+
+onWindowStageDestroy(): void
+
+当WindowStage销毁后调用。
+
+- 示例:
+
+ ```
+ class myAbility extends Ability {
+ onWindowStageDestroy() {
+ console.log('onWindowStageDestroy');
+ }
+ }
+ ```
+
+
+## onWindowStageRestore
+
+onWindowStageRestore(windowStage: window.WindowStage): void
+
+当迁移多实例ability时,恢复WindowStage后调用。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | windowStage | window.WindowStage | 是 | WindowStage相关信息。 |
+
+- 示例:
+
+ ```
+ class myAbility extends Ability {
+ onWindowStageRestore(windowStage) {
+ console.log('onWindowStageRestore');
+ }
+ }
+ ```
+
+
+## onDestroy
+
+onDestroy(): void;
+
+Ability生命周期回调,在销毁时回调,执行资源清理等操作。
+
+- 示例:
+
+ ```
+ class myAbility extends Ability {
+ onDestroy() {
+ console.log('onDestroy');
+ }
+ }
+ ```
+
+
+## onForeground
+
+onForeground(): void;
+
+Ability生命周期回调,当应用处于前台时触发。
+
+- 示例:
+
+ ```
+ class myAbility extends Ability {
+ onForeground() {
+ console.log('onForeground');
+ }
+ }
+ ```
+
+
+## onBackground
+
+onBackground(): void;
+
+Ability生命周期回调,当应用处于后台时触发。
+
+- 示例:
+
+ ```
+ class myAbility extends Ability {
+ onBackground() {
+ console.log('onBackground');
+ }
+ }
+ ```
+
+
+## onContinue
+
+onContinue(wantParam : {[key: string]: any}): boolean;
+
+当ability迁移准备迁移时触发,保存数据。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | wantParam | {[key: string]: any} | 是 | want相关参数。 |
+
+- 返回值:
+ | 类型 | 说明 |
+ | -------- | -------- |
+ | boolean | true表示同意迁移,false表示拒绝迁移。 |
+
+- 示例:
+
+ ```
+ class myAbility extends Ability {
+ onContinue(wantParams) {
+ console.log('onContinue');
+ wantParams["myData"] = "my1234567";
+ return true;
+ }
+ }
+ ```
+
+
+## onNewWant
+
+onNewWant(want: Want): void;
+
+当ability的启动模式设置为单例时回调会被调用。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | want | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | Want类型参数,如ability名称,包名等。 |
+
+- 示例:
+
+ ```
+ class myAbility extends Ability {
+ onNewWant(want) {
+ console.log('onNewWant, want:' + want.abilityName);
+ }
+ }
+ ```
+
+
+## onConfigurationUpdated
+
+onConfigurationUpdated(config: Configuration): void;
+
+当系统配置更新时调用。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | config | [Configuration](#section188911144124715) | 是 | 表示需要更新的配置信息。 |
+
+- 示例:
+
+ ```
+ class myAbility extends Ability {
+ onConfigurationUpdated(config) {
+ console.log('onConfigurationUpdated, config:' + JSON.stringify(config));
+ }
+ }
+ ```
+
+
+## Caller
+
+通用组件Caller通信客户端调用接口, 用来向通用组件服务端发送约定数据。
+
+
+### call
+
+call(method, data: rpc.Sequenceable): Promise<void>;
+
+向通用组件服务端发送约定序列化数据。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | method | string | 是 | 约定的服务端注册事件字符串。 |
+ | data | rpc.Sequenceable | 是 | 由开发者实现的Sequenceable可序列化数据。 |
+
+- 返回值:
+ | 类型 | 说明 |
+ | -------- | -------- |
+ | Promise<void> | Promise形式返回应答。 |
+
+- 示例:
+
+ ```
+ import Ability from '@ohos.application.Ability';
+ class MyMessageAble{ // 自定义的Sequenceable数据结构
+ num: 0
+ str: ''
+ constructor() {}
+ marshalling(messageParcel) {
+ messageParcel.writeInt(this.num);
+ messageParcel.writeString(this.str);
+ console.log('MyMessageAble marshalling num[' + this.num + '] str[' + this.str + ']');
+ return true;
+ }
+ unmarshalling(messageParcel) {
+ this.num = messageParcel.readInt();
+ this.str = messageParcel.readString();
+ console.log('MyMessageAble unmarshalling num[' + this.num + '] str[' + this.str + ']');
+ return true;
+ }
+ };
+ var method = 'call_Function'; // 约定的通知消息字符串
+ var caller;
+ export default class MainAbility extends Ability {
+ onWindowStageCreate(windowStage) {
+ caller = await this.context.startAbilityByCall({
+ bundleName: "com.example.myservice",
+ abilityName: "com.example.myservice.MainAbility",
+ deviceId: ""
+ });
+ let msg = new MyMessageAble(1, "world"); // 参考Sequenceable数据定义
+ caller.call(method, msg)
+ .then(() => {
+ console.log('Caller call() called');
+ }).catch((e) => {
+ console.log('Caller call() catch error ' + e);
+ });
+ }
+ }
+ ```
+
+
+### callWithResult
+
+callWithResult(method, data: rpc.Sequenceable): Promise<rpc.MessageParcel>;
+
+向通用组件服务端发送约定序列化数据, 并将服务端返回的约定序列化数据带回。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | method | string | 是 | 约定的服务端注册事件字符串。 |
+ | data | rpc.Sequenceable | 是 | 由开发者实现的Sequenceable可序列化数据。 |
+
+- 返回值:
+ | 类型 | 说明 |
+ | -------- | -------- |
+ | Promise<rpc.MessageParcel> | Promise形式返回通用组件服务端应答数据。 |
+
+- 示例:
+
+ ```
+ import Ability from '@ohos.application.Ability';
+ class MyMessageAble{
+ num: 0
+ str: ''
+ constructor() {}
+ marshalling(messageParcel) {
+ messageParcel.writeInt(this.num);
+ messageParcel.writeString(this.str);
+ console.log('MyMessageAble marshalling num[' + this.num + '] str[' + this.str + ']');
+ return true;
+ }
+ unmarshalling(messageParcel) {
+ this.num = messageParcel.readInt();
+ this.str = messageParcel.readString();
+ console.log('MyMessageAble unmarshalling num[' + this.num + '] str[' + this.str + ']');
+ return true;
+ }
+ };
+ var method = 'call_Function';
+ var caller;
+ export default class MainAbility extends Ability {
+ onWindowStageCreate(windowStage) {
+ caller = await this.context.startAbilityByCall({
+ bundleName: "com.example.myservice",
+ abilityName: "com.example.myservice.MainAbility",
+ deviceId: ""
+ });
+ let msg = new MyMessageAble(1, "world");
+ caller.callWithResult(method, msg)
+ .then((data) => {
+ console.log('Caller call() called');
+ let retmsg = new MyMessageAble(0, "");
+ data.readSequenceable(retmsg);
+ }).catch((e) => {
+ console.log('Caller call() catch error ' + e);
+ });
+ }
+ }
+ ```
+
+
+### release
+
+release(): void;
+
+主动释放通用组件服务端的通信接口。
+
+- 示例:
+
+ ```
+ import Ability from '@ohos.application.Ability';
+ var caller;
+ export default class MainAbility extends Ability {
+ onWindowStageCreate(windowStage) {
+ caller = await this.context.startAbilityByCall({
+ bundleName: "com.example.myservice",
+ abilityName: "com.example.myservice.MainAbility",
+ deviceId: ""
+ });
+ try {
+ caller.release();
+ } catch (e) {
+ console.log('Caller Release error ' + e);
+ }
+ }
+ }
+ ```
+
+
+### onRelease
+
+onRelease(callback: function): void;
+
+注册通用组件服务端Stub断开监听通知。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | callback | function | 是 | 返回onRelease回调结果。 |
+
+- 示例:
+
+ ```
+ import Ability from '@ohos.application.Ability';
+ var caller;
+ export default class MainAbility extends Ability {
+ onWindowStageCreate(windowStage) {
+ caller = await this.context.startAbilityByCall({
+ bundleName: "com.example.myservice",
+ abilityName: "com.example.myservice.MainAbility",
+ deviceId: ""
+ });
+ try {
+ caller.onRelease((str) => {
+ console.log(' Caller OnRelease CallBack is called ' + str);
+ });
+ } catch (e) {
+ console.log('Caller Release error ' + e);
+ }
+ }
+ }
+ ```
+
+
+## Callee
+
+通用组件服务端注册和解除客户端caller通知送信的callback接口。
+
+
+### on
+
+on(method: string, callback: function): void;
+
+通用组件服务端注册消息通知callback。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | method | string | 是 | 与客户端约定的通知消息字符串。 |
+ | callback | function | 是 | 一个rpc.MessageParcel类型入参的js通知同步回调函数, 回调函数至少要返回一个空的rpc.Sequenceable数据对象, 其他视为函数执行错误。 |
+
+- 示例:
+
+ ```
+ import Ability from '@ohos.application.Ability';
+ class MyMessageAble{
+ num: 0
+ str: ''
+ constructor() {}
+ marshalling(messageParcel) {
+ messageParcel.writeInt(this.num);
+ messageParcel.writeString(this.str);
+ console.log('MyMessageAble marshalling num[' + this.num + '] str[' + this.str + ']');
+ return true;
+ }
+ unmarshalling(messageParcel) {
+ this.num = messageParcel.readInt();
+ this.str = messageParcel.readString();
+ console.log('MyMessageAble unmarshalling num[' + this.num + '] str[' + this.str + ']');
+ return true;
+ }
+ };
+ var method = 'call_Function';
+ function funcCallBack(pdata) {
+ console.log('Callee funcCallBack is called ' + pdata);
+ let msg = new MyMessageAble(0, "");
+ pdata.readSequenceable(msg);
+ return new MyMessageAble(10, "Callee test");
+ }
+ export default class MainAbility extends Ability {
+ onCreate(want, launchParam) {
+ console.log('Callee onCreate is called');
+ this.callee.on(method, funcCallBack);
+ }
+ }
+ ```
+
+
+### off
+
+off(method: string): void;
+
+解除通用组件服务端注册消息通知callback。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | method | string | 是 | 已注册的通知事件字符串。 |
+
+- 示例:
+
+ ```
+ import Ability from '@ohos.application.Ability';
+ var method = 'call_Function';
+ export default class MainAbility extends Ability {
+ onCreate(want, launchParam) {
+ console.log('Callee onCreate is called');
+ this.callee.off(method);
+ }
+ }
+ ```
+
diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-abilitystage.md b/zh-cn/application-dev/reference/apis/js-apis-application-abilitystage.md
new file mode 100644
index 0000000000000000000000000000000000000000..81409eb8908b0b0eb474c448bc3c706c42bc0b8e
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-application-abilitystage.md
@@ -0,0 +1,89 @@
+# AbilityStage
+
+- [导入模块](#导入模块)
+- [onCreate](#onCreate)
+- [onAcceptWant](#onAcceptWant)
+- [onConfigurationUpdated](#onConfigurationUpdated)
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API 9开始支持。
+
+
+AbilityStage是HAP包的运行时类。在HAP加载的时候,通知开发者,开发者可以在此进行该HAP的初始化(如资源预加载,线程创建等)。
+
+
+## 导入模块
+
+
+```
+import AbilityStage from '@ohos.application.AbilityStage';
+```
+
+
+## onCreate
+
+onCreate(): void
+
+当应用创建时调用。
+
+- 示例
+
+ ```
+ class MyAbilityStage extends AbilityStage {
+ onCreate() {
+ console.log("MyAbilityStage.onCreate is called")
+ }
+ }
+ ```
+
+
+## onAcceptWant
+
+onAcceptWant(want: Want): string;
+
+启动一个specified ability时触发的事件。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | want | [Want](js-apis-featureAbility.md#Want类型说明) | 是 | Want类型参数,传入需要启动的ability的信息,如ability名称,包名等。 |
+
+- 返回值:
+ | 类型 | 说明 |
+ | -------- | -------- |
+ | string | 用户返回一个ability标识,如果之前启动过次标识的ability,不创建新的实例并拉回栈顶,否则创建新的实例并启动。 |
+
+- 示例
+
+ ```
+ class MyAbilityStage extends AbilityStage {
+ onAcceptWant(want) {
+ console.log("MyAbilityStage.onAcceptWant called");
+ return "com.example.test";
+ }
+ }
+ ```
+
+
+## onConfigurationUpdated
+
+onConfigurationUpdated(config: Configuration): void;
+
+环境变化通知接口,发生全局配置变更时回调。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | config | [Configuration](js-apis-configuration.md) | 是 | 发生全局配置变更时触发回调,当前全局配置包括系统语言、深浅色模式。 |
+
+- 示例:
+
+ ```
+ class MyAbilityStage extends AbilityStage {
+ onConfigurationUpdated(config) {
+ console.log('onConfigurationUpdated, language:' + config.language);
+ }
+ }
+ ```
+
diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-context.md b/zh-cn/application-dev/reference/apis/js-apis-application-context.md
new file mode 100644
index 0000000000000000000000000000000000000000..ab48a6906570fd1a53415ae5e0add91269c97f85
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-application-context.md
@@ -0,0 +1,78 @@
+# Context
+
+- [使用说明](#使用说明)
+- [属性](#属性)
+- [createBundleContext](#createBundleContext)
+- [getApplicationContext](#getApplicationContext)
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API version 9开始支持。
+
+
+提供开发者运行代码的上下文环境,包括应用信息、ResourceManager等信息。
+
+
+## 使用说明
+
+
+通过AbilityContext等集成实现。
+
+
+## 属性
+
+ | 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| -------- | -------- | -------- | -------- | -------- |
+| resourceManager | ResourceManager | 是 | 否 | ResourceManager对象。 |
+| applicationInfo | ApplicationInfo | 是 | 否 | 当前应用信息。 |
+| cacheDir | string | 是 | 否 | 应用在内部存储上的缓存路径。 |
+| tempDir | string | 是 | 否 | 应用的临时文件路径。 |
+| filesDir | string | 是 | 否 | 应用在内部存储上的文件路径。 |
+| databaseDir | string | 是 | 否 | 获取本地数据存储路径。 |
+| storageDir | string | 是 | 否 | 获取轻量级数据存储路径。 |
+| bundleCodeDir | string | 是 | 否 | 应用安装路径。 |
+| distributedFilesDir | string | 是 | 否 | 应用的分布式文件路径。 |
+| eventHub | [EventHub](js-apis-eventhub.md) | 是 | 否 | 事件中心信息。|
+
+
+## createBundleContext
+
+createBundleContext(bundleName: string): Context;
+
+创建指定应用上下文。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | bundleName | string | 是 | 应用bundle名。 |
+
+- 返回值:
+ | 类型 | 说明 |
+ | -------- | -------- |
+ | Context | 对应创建应用的上下文context。 |
+
+- 示例:
+
+ ```
+ let test = "com.huawei.test";
+ let context = this.context.createBundleContext(test);
+ ```
+
+
+## getApplicationContext
+
+getApplicationContext(): Context;
+
+获取当前context。
+
+- 返回值:
+ | 类型 | 说明 |
+ | -------- | -------- |
+ | Context | 当前Context 信息。 |
+
+- 示例:
+
+ ```
+ // 必选项。
+ let context = this.context.getApplicationContext();
+ ```
diff --git a/zh-cn/application-dev/reference/apis/js-apis-appmanager.md b/zh-cn/application-dev/reference/apis/js-apis-appmanager.md
new file mode 100644
index 0000000000000000000000000000000000000000..795b19aa7713cb4479302563edbfe85e1e0c2ad9
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-appmanager.md
@@ -0,0 +1,64 @@
+# appManager
+
+- [导入模块](#导入模块)
+- [isRunningInStabilityTest](#isRunningInStabilityTest)
+- [isRunningInStabilityTest](#isRunningInStabilityTest)
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API 8开始支持。
+
+
+App运行相关信息。
+
+
+## 导入模块
+
+
+```
+import app from '@ohos.application.appManager';
+```
+
+
+## isRunningInStabilityTest
+
+static isRunningInStabilityTest(callback: AsyncCallback<boolean>): void
+
+查询当前用户是否是一个稳定性测试。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | callback | AsyncCallback<boolean> | 否 | 返回当前是否处于稳定性测试场景。 |
+
+- 示例:
+
+ ```
+ import app from '@ohos.application.appManager';
+ app.isRunningInStabilityTest((err, flag) => {
+ console.log('startAbility result:' + JSON.stringfy(err);
+ }
+ ```
+
+
+## isRunningInStabilityTest
+
+static isRunningInStabilityTest(): Promise<boolean>
+
+查询当前是否处于稳定性测试场景。
+
+- 返回值:
+ | 类型 | 说明 |
+ | -------- | -------- |
+ | Promise<boolean> | 返回当前是否处于稳定性测试场景。 |
+
+- 示例:
+
+ ```
+ import app from '@ohos.application.appManager';
+ app.isRunningInStabilityTest().then((flag) => {
+ console.log('success:' + JSON.stringfy(flag));
+ )).catch((error) => {
+ console.log('failed:' + JSON.stringfy(error));
+ });
+ ```
diff --git a/zh-cn/application-dev/reference/apis/js-apis-bluetooth.md b/zh-cn/application-dev/reference/apis/js-apis-bluetooth.md
old mode 100644
new mode 100755
index c843e0cb38b24a8c6d8f1ba36012a845716c0e4c..631329ebb3228fbb8a60293c7714fdd794bfee77
--- a/zh-cn/application-dev/reference/apis/js-apis-bluetooth.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-bluetooth.md
@@ -1,3 +1,5 @@
+# 蓝牙
+
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
>
@@ -155,7 +157,7 @@ pairDevice(deviceId: string): boolean
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
-| deviceId | string | 是 | 表示配对的远端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 |
+| deviceId | string | 是 | 表示配对的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
**返回值:**
@@ -167,7 +169,82 @@ pairDevice(deviceId: string): boolean
```
// 实际的地址可由扫描流程获取
-let result = bluetooth.pairDevice("8F:8F:8E:8E:6D:6D");
+let result = bluetooth.pairDevice("XX:XX:XX:XX:XX:XX");
+```
+
+
+## bluetooth.cancelPairedDevice
+
+cancelPairedDevice(deviceId: string): boolean
+
+删除配对的远程设备。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| deviceId | string | 是 | 表示要删除的远程设备的地址,例如:"XX:XX:XX:XX:XX:XX"。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| boolean | 启动取消配对,成功返回true,否则返回false。 |
+
+**示例:**
+
+```
+let result = bluetooth.cancelPairedDevice("XX:XX:XX:XX:XX:XX");
+```
+
+
+## bluetooth.getRemoteDeviceName
+
+getRemoteDeviceName(deviceId: string): string
+
+获取对端蓝牙设备的名称。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| deviceId | string | 是 | 表示远程设备的地址,例如:"XX:XX:XX:XX:XX:XX"。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| string | 以字符串格式返回设备名称。 |
+
+**示例:**
+
+```
+let remoteDeviceName = bluetooth.getRemoteDeviceName("XX:XX:XX:XX:XX:XX");
+```
+
+
+## bluetooth.getRemoteDeviceClass
+
+getRemoteDeviceClass(deviceId: string): DeviceClass
+
+获取对端蓝牙设备的类别。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| deviceId | string | 是 | 表示远程设备的地址,例如:"XX:XX:XX:XX:XX:XX"。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------- | -------- |
+| [DeviceClass](#DeviceClass) | 远程设备的类别。 |
+
+**示例:**
+
+```
+let remoteDeviceClass = bluetooth.getRemoteDeviceClass("XX:XX:XX:XX:XX:XX");
```
@@ -289,7 +366,7 @@ setDevicePairingConfirmation(device: string, accept: boolean): boolean
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
-| device | string | 是 | 表示远端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 |
+| device | string | 是 | 表示远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| accept | boolean | 是 | 接受配对请求设置为true,否则设置为false。 |
**返回值:**
@@ -600,7 +677,7 @@ sppConnect(device: string, option: SppOption, callback: AsyncCallback<number&
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
-| device | string | 是 | 对端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 |
+| device | string | 是 | 对端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| option | [SppOption](#sppoption) | 是 | spp客户端连接配置参数。 |
| callback | AsyncCallback<number> | 是 | 表示回调函数的入参,客户端socket的id。 |
@@ -617,7 +694,7 @@ function clientSocket(code, number) {
clientNumber = number;
}
let sppOption = {uuid: '00001810-0000-1000-8000-00805F9B34FB', secure: false, type: 0};
-bluetooth.sppConnect('8F:8F:8E:8E:6D:6D', sppOption, clientSocket);
+bluetooth.sppConnect('XX:XX:XX:XX:XX:XX', sppOption, clientSocket);
```
@@ -780,7 +857,7 @@ createGattClientDevice(deviceId: string): GattClientDevice
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
-| deviceId | string | 是 | 对端设备地址, 例如:"8F:8F:8E:8E:6D:6D"。 |
+| deviceId | string | 是 | 对端设备地址, 例如:"XX:XX:XX:XX:XX:XX"。 |
**返回值:**
@@ -791,7 +868,7 @@ createGattClientDevice(deviceId: string): GattClientDevice
**示例:**
```
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
```
@@ -840,7 +917,7 @@ function onReceiveEvent(data) {
bluetooth.BLE.on("BLEDeviceFind", onReceiveEvent);
bluetooth.BLE.startBLEScan(
[{
- deviceId:"8F:8F:8E:8E:6D:6D",
+ deviceId:"XX:XX:XX:XX:XX:XX",
name:"test",
serviceUuid:"00001888-0000-1000-8000-00805f9b34fb"
}],
@@ -1117,7 +1194,7 @@ server端特征值发生变化时,主动通知已连接的client设备。
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
-| deviceId | string | 是 | 接收通知的client端设备地址,例如“8F:8F:8E:8E:6D:6D”。 |
+| deviceId | string | 是 | 接收通知的client端设备地址,例如“XX:XX:XX:XX:XX:XX”。 |
| notifyCharacteristic | [NotifyCharacteristic](#notifycharacteristic) | 是 | 通知的特征值数据。 |
**返回值:**
@@ -1133,7 +1210,7 @@ server端特征值发生变化时,主动通知已连接的client设备。
let notifyCharacteristic = {serviceUuid: '00001810-0000-1000-8000-00805F9B34FB',
characteristicUuid: '00001821-0000-1000-8000-00805F9B34FB', characteristicValue: notifyCcc.characteristicValue, confirm: false};
let server = bluetooth.BLE.createGattServer();
-server.notifyCharacteristicChanged('8F:8F:8E:8E:6D:6D', notifyCharacteristic);
+server.notifyCharacteristicChanged('XX:XX:XX:XX:XX:XX', notifyCharacteristic);
```
@@ -1164,7 +1241,7 @@ let arrayBufferCCC = new ArrayBuffer(8);
let cccValue = new Uint8Array(arrayBufferCCC);
cccValue[0] = 1123;
let serverResponse = {
- "deviceId": "8F:8F:8E:8E:6D:6D",
+ "deviceId": "XX:XX:XX:XX:XX:XX",
"transId": 0,
"status": 0,
"offset": 0,
@@ -1538,7 +1615,7 @@ client端发起连接远端蓝牙低功耗设备。
**示例:**
```
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let ret = device.connect();
```
@@ -1558,7 +1635,7 @@ client端断开与远端蓝牙低功耗设备的连接。
**示例:**
```
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let ret = device.disconnect();
```
@@ -1578,7 +1655,7 @@ close(): boolean
**示例:**
```
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let ret = device.close();
```
@@ -1617,7 +1694,7 @@ function getServices(code, gattServices) {
}
}
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.connect();
device.getServices(getServices);
```
@@ -1641,7 +1718,7 @@ client端获取蓝牙低功耗设备的所有服务,即服务发现。
```
// Promise 模式
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.connect();
let services = device.getServices();
console.log("bluetooth services size is ", services.length);
@@ -1681,7 +1758,7 @@ function readCcc(code, BLECharacteristic) {
console.log('bluetooth characteristic value: ' + value[0] +','+ value[1]+','+ value[2]+','+ value[3]);
}
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let descriptors = [];
let bufferDesc = new ArrayBuffer(8);
let descV = new Uint8Array(bufferDesc);
@@ -1724,7 +1801,7 @@ client端读取蓝牙低功耗设备特定服务的特征值。
**示例:**
```
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let descriptors = [];
let bufferDesc = new ArrayBuffer(8);
let descV = new Uint8Array(bufferDesc);
@@ -1774,7 +1851,7 @@ function readDesc(code, BLEDescriptor) {
console.log('bluetooth descriptor value: ' + value[0] +','+ value[1]+','+ value[2]+','+ value[3]);
}
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let bufferDesc = new ArrayBuffer(8);
let descV = new Uint8Array(bufferDesc);
descV[0] = 11;
@@ -1807,7 +1884,7 @@ client端读取蓝牙低功耗设备特定的特征包含的描述符。
**示例:**
```
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let bufferDesc = new ArrayBuffer(8);
let descV = new Uint8Array(bufferDesc);
descV[0] = 11;
@@ -1839,7 +1916,7 @@ client端向低功耗蓝牙设备写入特定的特征值。
**示例:**
```
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let descriptors = [];
let bufferDesc = new ArrayBuffer(8);
let descV = new Uint8Array(bufferDesc);
@@ -1885,7 +1962,7 @@ client端向低功耗蓝牙设备特定的描述符写入二进制数据。
**示例:**
```
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
let bufferDesc = new ArrayBuffer(8);
let descV = new Uint8Array(bufferDesc);
descV[0] = 22;
@@ -1922,7 +1999,7 @@ client协商远端蓝牙低功耗设备的最大传输单元(Maximum Transmiss
**示例:**
```
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.setBLEMtuSize(128);
```
@@ -1949,7 +2026,7 @@ setNotifyCharacteristicChanged(characteristic: BLECharacteristic, enable: boolea
**示例:**
```
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.setNotifyCharacteristicChanged(notifyCcc, false);
```
@@ -1979,7 +2056,7 @@ function CharacteristicChange(CharacteristicChangeReq) {
let characteristicUuid = CharacteristicChangeReq.characteristicUuid;
let value = new Uint8Array(CharacteristicChangeReq.characteristicValue);
}
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.on('BLECharacteristicChange', CharacteristicChange);
```
@@ -2004,7 +2081,7 @@ off(type: "BLECharacteristicChange", callback?: Callback<BLECharacteristic>
**示例:**
```
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.off('BLECharacteristicChange');
```
@@ -2033,7 +2110,7 @@ function ConnectStateChanged(state) {
console.log('bluetooth connect state changed');
let connectState = state.state;
}
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.on('BLEConnectionStateChange', ConnectStateChanged);
```
@@ -2058,7 +2135,7 @@ off(type: "BLEConnectionStateChange", callback?: Callback<BLEConnectChangedSt
**示例:**
```
-let device = bluetooth.BLE.createGattClientDevice('8F:8F:8E:8E:6D:6D');
+let device = bluetooth.BLE.createGattClientDevice('XX:XX:XX:XX:XX:XX');
device.off('BLEConnectionStateChange');
```
@@ -2083,7 +2160,7 @@ client获取远端蓝牙低功耗设备名。
```
// callback
-let gattClient = bluetooth.BLE.createGattClientDevice("8F:8F:8E:8E:6D:6D");
+let gattClient = bluetooth.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX");
let deviceName = gattClient.getDeviceName((err, data)=> {
console.info('device name err ' + JSON.stringify(err));
console.info('device name' + JSON.stringify(data));
@@ -2107,7 +2184,7 @@ client获取远端蓝牙低功耗设备名。
```
// promise
-let gattClient = bluetooth.BLE.createGattClientDevice("8F:8F:8E:8E:6D:6D");
+let gattClient = bluetooth.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX");
let ret = device.connect();
let deviceName = gattClient.getDeviceName().then((data) => {
console.info('device name' + JSON.stringify(data));
@@ -2135,7 +2212,7 @@ client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength
```
// callback
-let gattClient = bluetooth.BLE.createGattClientDevice("8F:8F:8E:8E:6D:6D");
+let gattClient = bluetooth.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX");
let ret = device.connect();
let rssi = gattClient.getRssiValue((err, data)=> {
console.info('rssi err ' + JSON.stringify(err));
@@ -2160,7 +2237,7 @@ client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength
```
// promise
-let gattClient = bluetooth.BLE.createGattClientDevice("8F:8F:8E:8E:6D:6D");
+let gattClient = bluetooth.BLE.createGattClientDevice("XX:XX:XX:XX:XX:XX");
let rssi = gattClient.getRssiValue().then((data) => {
console.info('rssi' + JSON.stringify(data));
})
@@ -2266,7 +2343,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
-| deviceId | string | 是 | 否 | 表示发送特征值读请求的远端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 |
+| deviceId | string | 是 | 否 | 表示发送特征值读请求的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| transId | number | 是 | 否 | 表示读请求的传输ID,server端回复响应时需填写相同的传输ID。 |
| offset | number | 是 | 否 | 表示读特征值数据的起始位置。例如:k表示从第k个字节开始读,server端回复响应时需填写相同的offset。 |
| characteristicUuid | string | 是 | 否 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 |
@@ -2279,7 +2356,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
-| deviceId | string | 是 | 否 | 表示发送特征值写请求的远端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 |
+| deviceId | string | 是 | 否 | 表示发送特征值写请求的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| transId | number | 是 | 否 | 表示写请求的传输ID,server端回复响应时需填写相同的传输ID。 |
| offset | number | 是 | 否 | 表示写特征值数据的起始位置。例如:k表示从第k个字节开始写,server端回复响应时需填写相同的offset。 |
| descriptorUuid | string | 是 | 否 | 表示描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。 |
@@ -2293,7 +2370,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
-| deviceId | string | 是 | 否 | 表示发送描述符读请求的远端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 |
+| deviceId | string | 是 | 否 | 表示发送描述符读请求的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| transId | number | 是 | 否 | 表示读请求的传输ID,server端回复响应时需填写相同的传输ID。 |
| offset | number | 是 | 否 | 表示读描述符数据的起始位置。例如:k表示从第k个字节开始读,server端回复响应时需填写相同的offset。 |
| descriptorUuid | string | 是 | 否 | 表示描述符(descriptor)的UUID,例如:00002902-0000-1000-8000-00805f9b34fb。 |
@@ -2307,7 +2384,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
-| deviceId | string | 是 | 否 | 表示发送描述符写请求的远端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 |
+| deviceId | string | 是 | 否 | 表示发送描述符写请求的远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| transId | number | 是 | 否 | 表示写请求的传输ID,server端回复响应时需填写相同的传输ID。 |
| offset | number | 是 | 否 | 表示写描述符数据的起始位置。例如:k表示从第k个字节开始写,server端回复响应时需填写相同的offset。 |
| isPrep | boolean | 是 | 否 | 表示写请求是否立即执行。 |
@@ -2324,7 +2401,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
-| deviceId | string | 是 | 否 | 表示远端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 |
+| deviceId | string | 是 | 否 | 表示远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| transId | number | 是 | 否 | 表示请求的传输ID,与订阅的读/写请求事件携带的ID保持一致。 |
| status | number | 是 | 否 | 表示响应的状态,设置为0即可,表示正常。 |
| offset | number | 是 | 否 | 表示请求的读/写起始位置,与订阅的读/写请求事件携带的offset保持一致。 |
@@ -2337,7 +2414,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
-| deviceId | string | 是 | 否 | 表示远端设备地址,例如:"8F:8F:8E:8E:6D:6D"。 |
+| deviceId | string | 是 | 否 | 表示远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| state | [ProfileConnectionState](#ProfileConnectionState) | 是 | 是 | 表示BLE连接状态的枚举。 |
@@ -2359,7 +2436,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
-| deviceId | string | 是 | 是 | 表示过滤的BLE设备地址,例如:"8F:8F:8E:8E:6D:6D"。 |
+| deviceId | string | 是 | 是 | 表示过滤的BLE设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| name | string | 是 | 是 | 表示过滤的BLE设备名。 |
| serviceUuid | string | 是 | 是 | 表示过滤包含该UUID服务的设备,例如:00001888-0000-1000-8000-00805f9b34fb。 |
@@ -2402,7 +2479,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
-| deviceId | string | 是 | 否 | 表示扫描到的设备地址,例如:"8F:8F:8E:8E:6D:6D"。 |
+| deviceId | string | 是 | 否 | 表示扫描到的设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| rssi | number | 是 | 否 | 表示扫描到的设备的rssi值。 |
| data | ArrayBuffer | 是 | 否 | 表示扫描到的设备发送的广播包。 |
@@ -2472,3 +2549,127 @@ let rssi = gattClient.getRssiValue().then((data) => {
| -------- | -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 否 | 表示要配对的设备ID。 |
| pinCode | string | 是 | 否 | 表示要配对的密钥。 |
+
+
+## DeviceClass
+
+描述蓝牙设备的类别。
+
+| 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| -------- | -------- | -------- | -------- | -------- |
+| majorClass | [MajorClass](#MajorClass) | 是 | 否 | 表示蓝牙设备主要类别的枚举。 |
+| majorMinorClass | [MajorMinorClass](#MajorMinorClass) | 是 | 否 | 表示主要次要蓝牙设备类别的枚举。 |
+| classOfDevice | number | 是 | 否 | 表示设备类别。 |
+
+
+## MajorClass
+
+枚举,蓝牙设备主要类别。
+
+| 名称 | 默认值 | 说明 |
+| -------- | -------- | -------- |
+| MAJOR_MISC | 0x0000 | 表示杂项设备。 |
+| MAJOR_COMPUTER | 0x0100 | 表示计算机设备。 |
+| MAJOR_PHONE | 0x0200 | 表示手机设备。 |
+| MAJOR_NETWORKING | 0x0300 | 表示网络设备。 |
+| MAJOR_AUDIO_VIDEO | 0x0400 | 表示音频和视频设备。 |
+| MAJOR_PERIPHERAL | 0x0500 | 表示外围设备。 |
+| MAJOR_IMAGING | 0x0600 | 表示成像设备。 |
+| MAJOR_WEARABLE | 0x0700 | 表示可穿戴设备。 |
+| MAJOR_TOY | 0x0800 | 表示玩具设备。 |
+| MAJOR_HEALTH | 0x0900 | 表示健康设备。 |
+| MAJOR_UNCATEGORIZED | 0x1F00 | 表示未分类设备。 |
+
+
+## MajorMinorClass
+
+枚举,主要次要蓝牙设备类别。
+
+| 名称 | 默认值 | 说明 |
+| -------- | -------- | -------- |
+| COMPUTER_UNCATEGORIZED | 0x0100 | 表示未分类计算机设备。 |
+| COMPUTER_DESKTOP | 0x0104 | 表示台式计算机设备。 |
+| COMPUTER_SERVER | 0x0108 | 表示服务器设备。 |
+| COMPUTER_LAPTOP | 0x010C | 表示便携式计算机设备。 |
+| COMPUTER_HANDHELD_PC_PDA | 0x0110 | 表示手持式计算机设备。 |
+| COMPUTER_PALM_SIZE_PC_PDA | 0x0114 | 表示掌上电脑设备。 |
+| COMPUTER_WEARABLE | 0x0118 | 表示可穿戴计算机设备。 |
+| COMPUTER_TABLET | 0x011C | 表示平板电脑设备。 |
+| PHONE_UNCATEGORIZED | 0x0200 | 表示未分类手机设备。 |
+| PHONE_CELLULAR | 0x0204 | 表示便携式手机设备。 |
+| PHONE_CORDLESS | 0x0208 | 表示无线电话设备。 |
+| PHONE_SMART | 0x020C | 表示智能手机设备。 |
+| PHONE_MODEM_OR_GATEWAY | 0x0210 | 表示调制解调器或网关手机设备。 |
+| PHONE_ISDN | 0x0214 | 表示ISDN手机设备。 |
+| NETWORK_FULLY_AVAILABLE | 0x0300 | 表示网络完全可用设备。 |
+| NETWORK_1_TO_17_UTILIZED | 0x0320 | 表示使用网络1到17设备。 |
+| NETWORK_17_TO_33_UTILIZED | 0x0340 | 表示使用网络17到33设备。 |
+| NETWORK_33_TO_50_UTILIZED | 0x0360 | 表示使用网络33到50设备。 |
+| NETWORK_60_TO_67_UTILIZED | 0x0380 | 表示使用网络60到67设备。 |
+| NETWORK_67_TO_83_UTILIZED | 0x03A0 | 表示使用网络67到83设备。 |
+| NETWORK_83_TO_99_UTILIZED | 0x03C0 | 表示使用网络83到99设备。 |
+| NETWORK_NO_SERVICE | 0x03E0 | 表示网络无服务设备。
+| AUDIO_VIDEO_UNCATEGORIZED | 0x0400 | 表示未分类音频视频设备。 |
+| AUDIO_VIDEO_WEARABLE_HEADSET | 0x0404 | 表示可穿戴式音频视频设备。 |
+| AUDIO_VIDEO_HANDSFREE | 0x0408 | 表示免提音频视频设备。 |
+| AUDIO_VIDEO_MICROPHONE | 0x0410 | 表示麦克风音频视频设备。 |
+| AUDIO_VIDEO_LOUDSPEAKER | 0x0414 | 表示扬声器音频视频设备。 |
+| AUDIO_VIDEO_HEADPHONES | 0x0418 | 表示头戴式音频视频设备。 |
+| AUDIO_VIDEO_PORTABLE_AUDIO | 0x041C | 表示便携式音频视频设备。 |
+| AUDIO_VIDEO_CAR_AUDIO | 0x0420 | 表示汽车音频视频设备。 |
+| AUDIO_VIDEO_SET_TOP_BOX | 0x0424 | 表示机顶盒音频视频设备。 |
+| AUDIO_VIDEO_HIFI_AUDIO | 0x0428 | 表示高保真音响设备。 |
+| AUDIO_VIDEO_VCR| 0x042C | 表示录像机音频视频设备。 |
+| AUDIO_VIDEO_VIDEO_CAMERA | 0x0430 | 表示照相机音频视频设备。 |
+| AUDIO_VIDEO_CAMCORDER | 0x0434 | 表示摄像机音频视频设备。 |
+| AUDIO_VIDEO_VIDEO_MONITOR | 0x0438 | 表示监视器音频视频设备。 |
+| AUDIO_VIDEO_VIDEO_DISPLAY_AND_LOUDSPEAKER | 0x043C | 表示视频显示器和扬声器设备。 |
+| AUDIO_VIDEO_VIDEO_CONFERENCING | 0x0440 | 表示音频视频会议设备。 |
+| AUDIO_VIDEO_VIDEO_GAMING_TOY | 0x0448 | 表示游戏玩具音频视频设备。 |
+| PERIPHERAL_NON_KEYBOARD_NON_POINTING | 0x0500 | 表示非键盘非指向外围设备。 |
+| PERIPHERAL_KEYBOARD | 0x0540 | 表示外设键盘设备。 |
+| PERIPHERAL_POINTING_DEVICE | 0x0580 | 表示定点装置外围设备。 |
+| PERIPHERAL_KEYBOARD_POINTING| 0x05C0 | 表示键盘指向外围设备。 |
+| PERIPHERAL_UNCATEGORIZED | 0x0500 | 表示未分类外围设备。 |
+| PERIPHERAL_JOYSTICK | 0x0504 | 表示周边操纵杆设备。 |
+| PERIPHERAL_GAMEPAD | 0x0508 | 表示周边游戏板设备。 |
+| PERIPHERAL_REMOTE_CONTROL | 0x05C0 | 表示远程控制外围设备。 |
+| PERIPHERAL_SENSING_DEVICE | 0x0510 | 表示外围传感设备设备。 |
+| PERIPHERAL_DIGITIZER_TABLET | 0x0514 | 表示外围数字化仪平板电脑设备。 |
+| PERIPHERAL_CARD_READER | 0x0518 | 表示外围读卡器设备。 |
+| PERIPHERAL_DIGITAL_PEN | 0x051C | 表示外设数码笔设备。 |
+| PERIPHERAL_SCANNER_RFID | 0x0520 | 表示射频识别扫描仪外围设备。 |
+| PERIPHERAL_GESTURAL_INPUT | 0x0522 | 表示手势输入外围设备。 |
+| IMAGING_UNCATEGORIZED | 0x0600 | 表示未分类的图像设备。 |
+| IMAGING_DISPLAY | 0x0610 | 表示图像显示设备。 |
+| IMAGING_CAMERA | 0x0620 | 表示成像照相机设备。 |
+| IMAGING_SCANNER | 0x0640 | 表示成像扫描仪设备。 |
+| IMAGING_PRINTER | 0x0680 | 表示成像打印机设备。 |
+| WEARABLE_UNCATEGORIZED | 0x0700 | 表示未分类的可穿戴设备。 |
+| WEARABLE_WRIST_WATCH | 0x0704 | 表示可穿戴腕表设备。 |
+| WEARABLE_PAGER | 0x0708 | 表示可穿戴寻呼机设备。 |
+| WEARABLE_JACKET | 0x070C | 表示夹克可穿戴设备。 |
+| WEARABLE_HELMET | 0x0710 | 表示可穿戴头盔设备。 |
+| WEARABLE_GLASSES | 0x0714 | 表示可穿戴眼镜设备。 |
+| TOY_UNCATEGORIZED | 0x0800 | 表示未分类的玩具设备。 |
+| TOY_ROBOT| 0x0804 | 表示玩具机器人设备。 |
+| TOY_VEHICLE | 0x0808 | 表示玩具车设备。 |
+| TOY_DOLL_ACTION_FIGURE | 0x080C | 表示人形娃娃玩具设备。 |
+| TOY_CONTROLLER | 0x0810 | 表示玩具控制器设备。 |
+| TOY_GAME | 0x0814 | 表示玩具游戏设备。 |
+| HEALTH_UNCATEGORIZED | 0x0900 | 表示未分类健康设备。 |
+| HEALTH_BLOOD_PRESSURE | 0x0904 | 表示血压健康设备。 |
+| HEALTH_THERMOMETER | 0x0908 | 表示温度计健康设备。 |
+| HEALTH_WEIGHING | 0x090C | 表示体重健康设备。 |
+| HEALTH_GLUCOSE | 0x0910 | 表示葡萄糖健康设备。 |
+| HEALTH_PULSE_OXIMETER | 0x0914 | 表示脉搏血氧仪健康设备。 |
+| HEALTH_PULSE_RATE | 0x0918 | 表示脉搏率健康设备。 |
+| HEALTH_DATA_DISPLAY | 0x091C | 表示数据显示健康设备。 |
+| HEALTH_STEP_COUNTER | 0x0920 | 表示阶梯计数器健康设备。 |
+| HEALTH_BODY_COMPOSITION_ANALYZER | 0x0924 | 表示身体成分分析仪健康设备。 |
+| HEALTH_PEAK_FLOW_MOITOR | 0x0928 | 表示湿度计健康设备。 |
+| HEALTH_MEDICATION_MONITOR | 0x092C | 表示药物监视仪健康设备。 |
+| HEALTH_KNEE_PROSTHESIS | 0x0930 | 表示膝盖假肢健康设备。 |
+| HEALTH_ANKLE_PROSTHESIS | 0x0934 | 表示脚踝假肢健康设备。 |
+| HEALTH_GENERIC_HEALTH_MANAGER | 0x0938 | 表示通用健康管理设备。 |
+| HEALTH_PERSONAL_MOBILITY_DEVICE | 0x093C | 表示个人移动健康设备。 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-call.md b/zh-cn/application-dev/reference/apis/js-apis-call.md
index ea4ea2cbf1b6e6dfdee82a01fb68d69a05ccacbe..2319264154c907ca625343e05a9478a3321886b5 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-call.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-call.md
@@ -17,7 +17,9 @@ dial\(phoneNumber: string, callback: AsyncCallback\): void
拨打电话,使用callback方式作为异步方法。
-需要权限:ohos.permission.PLACE\_CALL权限,该权限为系统权限。
+**需要权限**:ohos.permission.PLACE\_CALL,该权限为系统权限
+
+**系统能力**:SystemCapability.Telephony.CallManager
**参数:**
@@ -41,7 +43,9 @@ dial\(phoneNumber: string, options: DialOptions, callback: AsyncCallback
拨打电话,可设置通话参数,使用promise方式作为异步方法。
-需要权限:ohos.permission.PLACE\_CALL权限,该权限为系统权限。
+**需要权限**:ohos.permission.PLACE\_CALL,该权限为系统权限
+
+**系统能力**:SystemCapability.Telephony.CallManager
**参数:**
@@ -102,6 +108,8 @@ hasCall\(callback: AsyncCallback\): void
判断是否存在通话,使用callback方式作为异步方法。
+**系统能力**:SystemCapability.Telephony.CallManager
+
**参数:**
| 参数 | 类型 | 必填 | 说明 |
@@ -123,6 +131,8 @@ hasCall\(\): Promise
判断是否存在通话,使用Promise方式作为异步方法。
+**系统能力**:SystemCapability.Telephony.CallManager
+
**返回值:**
| 类型 | 说明 |
@@ -147,6 +157,8 @@ getCallState\(callback: AsyncCallback\): void
获取通话状态,使用callback方式作为异步方法。
+**系统能力**:SystemCapability.Telephony.CallManager
+
**参数:**
| 参数 | 类型 | 必填 | 说明 |
@@ -168,6 +180,8 @@ getCallState\(\): Promise
获取通话状态,使用Promise方式作为异步方法。
+**系统能力**:SystemCapability.Telephony.CallManager
+
**返回值:**
| 类型 | 说明 |
@@ -191,6 +205,8 @@ isEmergencyPhoneNumber\(phoneNumber: string, callback: AsyncCallback\)
判断是否是紧急电话号码,使用callback方式作为异步方法。
+**系统能力**:SystemCapability.Telephony.CallManager
+
**参数:**
| 参数 | 类型 | 必填 | 说明 |
@@ -213,6 +229,8 @@ isEmergencyPhoneNumber\(phoneNumber: string, options: EmergencyNumberOptions, ca
判断是否是紧急电话号码,使用callback方式作为异步方法。
+**系统能力**:SystemCapability.Telephony.CallManager
+
**参数:**
| 参数 | 类型 | 必填 | 说明 |
@@ -236,6 +254,8 @@ isEmergencyPhoneNumber\(phoneNumber: string, options?: EmergencyNumberOptions\):
判断是否是紧急电话号码,使用promise方式作为异步方法。
+**系统能力**:SystemCapability.Telephony.CallManager
+
**参数:**
| 参数 | 类型 | 必填 | 说明 |
@@ -266,6 +286,8 @@ formatPhoneNumber\(phoneNumber: string, callback: AsyncCallback\): void
格式化电话号码,使用callback方式作为异步方法。
+**系统能力**:SystemCapability.Telephony.CallManager
+
**参数:**
| 参数 | 类型 | 必填 | 说明 |
@@ -288,6 +310,8 @@ formatPhoneNumber\(phoneNumber: string, options: NumberFormatOptions, callback:
格式化电话号码,可设置格式化参数,使用callback方式作为异步方法。
+**系统能力**:SystemCapability.Telephony.CallManager
+
**参数:**
| 参数 | 类型 | 必填 | 说明 |
@@ -313,6 +337,8 @@ formatPhoneNumber\(phoneNumber: string, options?: NumberFormatOptions\): Promise
格式化电话号码,可设置格式化参数,使用promise方式作为异步方法。
+**系统能力**:SystemCapability.Telephony.CallManager
+
**参数:**
| 参数 | 类型 | 必填 | 说明 |
@@ -349,6 +375,8 @@ formatPhoneNumberToE164\(phoneNumber: string, countryCode: string, callback: Asy
支持所有国家码。
+**系统能力**:SystemCapability.Telephony.CallManager
+
**参数:**
| 参数 | 类型 | 必填 | 说明 |
@@ -378,6 +406,8 @@ formatPhoneNumberToE164\(phoneNumber: string, countryCode: string\): Promise {
## DialOptions
拨打电话的可选参数。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
| 参数 | 类型 | 必填 | 说明 |
| ------ | ------- | ---- | ------------------------------------------------------------ |
| extras | boolean | 否 | 根据extras的值判断是否为视频通话,默认为语音通话。 - true:视频通话。 - fasle:语音通话。 |
@@ -414,16 +447,20 @@ promise.then(data => {
## CallState
通话状态码。
+
| 变量 | 值 | 说明 |
| ------------------ | ---- | ------------------------------------------------------------ |
-| CALL_STATE_UNKNOWN | -1 | 无效状态,当获取呼叫状态失败时返回。 |
-| CALL_STATE_IDLE | 0 | 表示没有正在进行的呼叫。 |
-| CALL_STATE_RINGING | 1 | 表示来电正在振铃或等待。 |
-| CALL_STATE_OFFHOOK | 2 | 表示至少有一个呼叫处于拨号、通话中或呼叫保持状态,并且没有新的来电振铃或等待。 |
+| CALL_STATE_UNKNOWN | -1 | 无效状态,当获取呼叫状态失败时返回。 **系统能力**:SystemCapability.Telephony.CallManager |
+| CALL_STATE_IDLE | 0 | 表示没有正在进行的呼叫。 **系统能力**:SystemCapability.Telephony.CallManager |
+| CALL_STATE_RINGING | 1 | 表示来电正在振铃或等待。 **系统能力**:SystemCapability.Telephony.CallManager |
+| CALL_STATE_OFFHOOK | 2 | 表示至少有一个呼叫处于拨号、通话中或呼叫保持状态,并且没有新的来电振铃或等待。 **系统能力**:SystemCapability.Telephony.CallManager |
## EmergencyNumberOptions7+
判断是否是紧急电话号码的可选参数。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
| 参数 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------------------------------ |
| slotId | number | 否 | 卡槽ID: - 0:卡槽1。 - 1:卡槽2。 |
@@ -431,6 +468,9 @@ promise.then(data => {
## NumberFormatOptions7+
格式化号码的可选参数。
+
+**系统能力**:SystemCapability.Telephony.CallManager
+
| 参数 | 类型 | 必填 | 说明 |
| ----------- | ------ | ---- | ---------------------------------------------------------- |
| countryCode | string | 否 | 国家码,支持所有国家的国家码,如:中国(CN)。默认为:CN。 |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-configuration.md b/zh-cn/application-dev/reference/apis/js-apis-configuration.md
new file mode 100644
index 0000000000000000000000000000000000000000..d35dfa4b321e40d8c028f07b78eb179f0cfb2291
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-configuration.md
@@ -0,0 +1,30 @@
+# Configuration
+
+- [导入模块](#导入模块)
+- [属性](#属性)
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API version 8开始支持。
+
+
+环境变化信息。
+
+
+## 导入模块
+
+
+```
+import Configuration from '@ohos.application.Configuration';
+```
+
+
+## 属性
+
+ | 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| -------- | -------- | -------- | -------- | -------- |
+| language | string | 是 | 是 | 表示应用程序的当前语言。 |
+| colorMode | [ColorMode](js-apis-configurationconstant.md) | 是 | 是 | 表示深浅色模式,取值范围:浅色模式(COLOR_MODE_LIGHT),深色模式(COLOR_MODE_DARK)。默认为浅色。 |
+| direction | Direction | 是 | 否 | 表示屏幕方向,取值范围:水平方向(DIRECTION_HORIZONTAL),垂直方向(DIRECTION_VERTICAL)。 |
+| screenDensity | ScreenDensity | 是 | 否 | 表示屏幕分辨率,取值范围:SCREEN_DENSITY_SDPI(120)、SCREEN_DENSITY_MDPI(160)、SCREEN_DENSITY_LDPI(240)、SCREEN_DENSITY_XLDPI(320)、SCREEN_DENSITY_XXLDPI(480)、SCREEN_DENSITY_XXXLDPI(640)。 |
+| displayId | number | 是 | 否 | 表示应用所在的displayId。 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-configurationconstant.md b/zh-cn/application-dev/reference/apis/js-apis-configurationconstant.md
new file mode 100644
index 0000000000000000000000000000000000000000..41a55a9f52860d13b74d0eac845ec499864848ac
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-configurationconstant.md
@@ -0,0 +1,61 @@
+# ConfigurationConstant
+
+- [导入模块](#导入模块)
+- [ColorMode](#ColorMode)
+- [Direction](#Direction)
+- [ScreenDensity](#ScreenDensity)
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API version 8开始支持。
+
+
+配置信息枚举值定义。
+
+
+## 导入模块
+
+
+```
+import ConfigurationConstant from '@ohos.application.ConfigurationConstant';
+```
+
+
+## ColorMode
+
+使用时通过ConfigurationConstant.ColorMode获取,示例:ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT。
+
+
+ | 名称 | 值 | 说明 |
+| -------- | -------- | -------- |
+| COLOR_MODE_NOT_SET | -1 | 未设置颜色模式。 |
+| COLOR_MODE_DARK | 0 | 深色模式。 |
+| COLOR_MODE_LIGHT | 1 | 浅色模式。 |
+
+
+## Direction
+
+使用时通过ConfigurationConstant.Direction获取,示例:ConfigurationConstant.Direction.DIRECTION_VERTICAL。
+
+
+ | 名称 | 值 | 说明 |
+| -------- | -------- | -------- |
+| DIRECTION_NOT_SET | -1 | 未设置方向。 |
+| DIRECTION_VERTICAL | 0 | 垂直方向。 |
+| DIRECTION_HORIZONTAL | 1 | 水平方向。 |
+
+
+## ScreenDensity
+
+使用时通过ConfigurationConstant.ScreenDensity获取,示例:ConfigurationConstant.ScreenDensity.SCREEN_DENSITY_NOT_SET。
+
+
+ | 名称 | 值 | 说明 |
+| -------- | -------- | -------- |
+| SCREEN_DENSITY_NOT_SET | 0 | 未设置屏幕分辨率。 |
+| SCREEN_DENSITY_SDPI | 120 | 屏幕分辨率为"sdpi"。 |
+| SCREEN_DENSITY_MDPI | 160 | 屏幕分辨率为"mdpi"。 |
+| SCREEN_DENSITY_LDPI | 240 | 屏幕分辨率为"ldpi"。 |
+| SCREEN_DENSITY_XLDPI | 320 | 屏幕分辨率为"xldpi"。 |
+| SCREEN_DENSITY_XXLDPI | 480 | 屏幕分辨率为"xxldpi"。 |
+| SCREEN_DENSITY_XXXLDPI | 640 | 屏幕分辨率为"xxxldpi"。 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-display.md b/zh-cn/application-dev/reference/apis/js-apis-display.md
index 81b71545a7c3dd16a97281a52bd6818c5a0f386c..ffc1c7cf5f35674f95be38a44c4dcd42a663bef9 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-display.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-display.md
@@ -1,7 +1,7 @@
# 显示设备属性
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本
+> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
@@ -34,7 +34,7 @@ import display from '@ohos.display';
| id | number | 是 | 否 | 显示设备的id号。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| name | string | 是 | 否 | 显示设备的名称。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| alive | boolean | 是 | 否 | 显示设备是否启用。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
-| state | DisplayState | 是 | 否 | 显示设备的状态。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| state | [DisplayState](#DisplayState) | 是 | 否 | 显示设备的状态。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| refreshRate | number | 是 | 否 | 显示设备的刷新率。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| rotation | number | 是 | 否 | 显示设备的屏幕旋转角度。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| width | number | 是 | 否 | 显示设备的宽度,单位为像素。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
@@ -52,10 +52,12 @@ getDefaultDisplay(callback: AsyncCallback<Display>): void
获取当前默认的display对象。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
- | callback | AsyncCallback<Display> | 是 | 回调返回当前默认的display对象。 |
+ | callback | AsyncCallback<[Display](#Display)> | 是 | 回调返回当前默认的display对象。 |
- 示例
```
@@ -70,17 +72,44 @@ getDefaultDisplay(callback: AsyncCallback<Display>): void
});
```
+## display.getDefaultDisplay
+
+getDefaultDisplay(): Promise<Display>
+
+获取当前默认的display对象。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 返回值
+
+ | 类型 | 说明 |
+ | ---------------------------------- | ---------------------------------------------- |
+ | Promise<[Display](#Display)> | 以Promise形式返回结果,返回默认的display对象。 |
+
+- 示例
+
+ ```
+ let promise = display.getDefaultDisplay();
+ promise.then(() => {
+ console.log('getDefaultDisplay success');
+ }).catch((err) => {
+ console.log('getDefaultDisplay fail: ' + JSON.stringify(err));
+ });
+ ```
+
## display.getAllDisplay
getAllDisplay(callback: AsyncCallback<Array<Display>>): void
获取当前所有的display对象。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | ----------------------------------------- | ---- | ------------------------------- |
- | callback | AsyncCallback<Array<Display>> | 是 | 回调返回当前所有的display对象。 |
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ---------------------------------------------------- | ---- | ------------------------------- |
+ | callback | AsyncCallback<Array<[Display](Display)>> | 是 | 回调返回当前所有的display对象。 |
- 示例
@@ -94,12 +123,39 @@ getAllDisplay(callback: AsyncCallback<Array<Display>>): void
});
```
+## display.getAllDisplay
+
+getAllDisplay(): Promise<Array<Display>>
+
+获取当前所有的display对象。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 返回值
+
+ | 类型 | 说明 |
+ | ----------------------------------------------- | ------------------------------------------------------- |
+ | Promise<Array<[Display](#Display)>> | 以Promise形式返回结果,返回包含所有Display对象的Array。 |
+
+- 示例
+
+ ```
+ let promise = display.getAllDisplay();
+ promise.then(() => {
+ console.log('getAllDisplay success');
+ }).catch((err) => {
+ console.log('getAllDisplay fail: ' + JSON.stringify(err));
+ });
+ ```
+
## display.on('add'|'remove'|'change')
on(type: 'add'|'remove'|'change', callback: Callback<number>): void
开启监听。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
@@ -122,6 +178,8 @@ off(type: 'add'|'remove'|'change', callback?: Callback<number>): void
关闭监听。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-eventhub.md b/zh-cn/application-dev/reference/apis/js-apis-eventhub.md
new file mode 100644
index 0000000000000000000000000000000000000000..265e5f01827e5b0b9a74747fcae4f6e1027396a3
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-eventhub.md
@@ -0,0 +1,137 @@
+# EventHub
+
+- [使用说明](#使用说明)
+- [on](#on)
+- [off](#off)
+- [emit](#emit)
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API 9开始支持。
+
+
+事件中心。提供订阅、取消订阅、触发事件能力。
+
+
+## 使用说明
+
+
+在使用eventHub的功能前,需要通过Ability实例的成员变量context获取。
+
+
+
+```
+import Ability from '@ohos.application.Ability'
+export default class MainAbility extends Ability {
+ onForeground() {
+ this.context.eventHub.on("123", this.func1);
+ }
+}
+```
+
+
+## on
+
+on(event: string, callback: Function): void;
+
+订阅指定事件。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | event | string | 是 | 事件名称。 |
+ | callback | Function | 是 | 事件回调,事件触发后运行。 |
+
+- 示例:
+
+ ```
+ import Ability from '@ohos.application.Ability'
+
+ export default class MainAbility extends Ability {
+ onForeground() {
+ this.context.eventHub.on("123", this.func1);
+ this.context.eventHub.on("123", () => {
+ console.log("call anonymous func 1");
+ });
+ // 结果:
+ // func1 is called
+ // call anonymous func 1
+ this.context.eventHub.emit("123");
+ }
+ func1() {
+ console.log("func1 is called");
+ }
+ }
+ ```
+
+
+## off
+
+off(event: string, callback?: Function): void;
+
+取消订阅指定事件。当callback传值时,取消订阅指定的callback;未传值时,取消订阅该事件下所有callback。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | event | string | 是 | 事件名称。 |
+ | callback | Function | 否 | 事件回调。如果不传callback,则取消订阅该事件下所有callback。 |
+
+- 示例:
+
+ ```
+ import Ability from '@ohos.application.Ability'
+
+ export default class MainAbility extends Ability {
+ onForeground() {
+ this.context.eventHub.on("123", this.func1);
+ this.context.eventHub.off("123", this.func1); //取消订阅func1
+ this.context.eventHub.on("123", this.func1);
+ this.context.eventHub.on("123", this.func2);
+ this.context.eventHub.off("123"); //取消订阅func1和func2
+ }
+ func1() {
+ console.log("func1 is called");
+ }
+ func2() {
+ console.log("func2 is called");
+ }
+ }
+ ```
+
+
+## emit
+
+emit(event: string, ...args: Object[]): void;
+
+触发指定事件。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | event | string | 是 | 事件名称。 |
+ | ...args | Object[] | 是 | 可变参数,事件触发时,传递给回调函数的参数。 |
+
+- 示例:
+
+ ```
+ import Ability from '@ohos.application.Ability'
+
+ export default class MainAbility extends Ability {
+ onForeground() {
+ this.context.eventHub.on("123", this.func1);
+ // 结果:
+ // func1 is called,undefined,undefined
+ this.context.eventHub.emit("123");
+ // 结果:
+ // func1 is called,1,undefined
+ this.context.eventHub.emit("123", 1);
+ // 结果:
+ // func1 is called,1,2
+ this.context.eventHub.emit("123", 1, 2);
+ }
+ func1(a: string, b: string) {
+ console.log("func1 is called," + a + "," + b);
+ }
+ }
+ ```
diff --git a/zh-cn/application-dev/reference/apis/js-apis-extensionrunninginfo.md b/zh-cn/application-dev/reference/apis/js-apis-extensionrunninginfo.md
new file mode 100644
index 0000000000000000000000000000000000000000..aede4031e5fad55e705dc0f382bf10387c18dd3e
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-extensionrunninginfo.md
@@ -0,0 +1,58 @@
+# ExtensionRunningInfo
+
+- [使用说明](#使用说明)
+ - [属性](#属性)
+- [bundle.ExtensionAbilityType](#bundleExtensionAbilityType)
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API 8开始支持。
+
+
+Extension运行相关信息。
+
+
+## 使用说明
+
+
+通过abilityManager中方法获取。
+
+
+
+```
+import abilitymanager from '@ohos.application.abilityManager';
+abilitymanager.getExtensionRunningInfos(upperLimit, (err,data) => {
+ console.log("getExtensionRunningInfos err: " + err + " data: " + JSON.stringify(data));
+});
+```
+
+
+### 属性
+
+ | 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| -------- | -------- | -------- | -------- | -------- |
+| extension | ElementName | 是 | 否 | Extension匹配信息。 |
+| pid | number | 是 | 否 | 进程ID。 |
+| uid | number | 是 | 否 | 用户ID。 |
+| processName | string | 是 | 否 | 进程名称。 |
+| startTime | number | 是 | 否 | Extension启动时间。 |
+| clientPackage | Array<String> | 是 | 否 | 连接客户端包名。 |
+| type | [bundle.ExtensionAbilityType](#bundle-extensionabilitytype) | 是 | 否 | Extension类型。 |
+
+
+## bundle.ExtensionAbilityType
+
+Extension类型。
+
+ | 名称 | 值 | 说明 |
+| -------- | -------- | -------- |
+| FORM | 0 | 表示带有form类型的扩展信息。 |
+| WORK_SCHEDULER | 1 | 表示带有work schedule类型的扩展信息。 |
+| INPUT_METHOD | 2 | 表示用输入法类型的扩展信息。 |
+| SERVICE | 3 | 表示带有service类型的扩展信息。 |
+| ACCESSIBILITY | 4 | 表示具有可访问性类型的扩展信息。 |
+| DATA_SHARE | 5 | 表示带有datashare类型的扩展信息。 |
+| FILE_SHARE | 6 | 表示带有fileshare类型的扩展信息。 |
+| STATIC_SUBSCRIBER | 7 | 表示带有静态订阅者类型的扩展信息。 |
+| WALLPAPER | 8 | 表示带有wallpaper类型的扩展信息。 |
+| UNSPECIFIED | 9 | 表示未指定类型信息。 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-formextension.md b/zh-cn/application-dev/reference/apis/js-apis-formextension.md
index 83e27c049babb7e0a1cc420efac1a2efd80190bd..09f2654fea910026f745adb226f9ca0c192c1670 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-formextension.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-formextension.md
@@ -42,14 +42,16 @@ onCreate(want: Want): formBindingData.FormBindingData
- 示例:
```
- onCreate(want) {
- console.log('FormExtension onCreate, want:' + want.abilityName);
- let dataObj1 = {
- temperature:"11c",
- "time":"11:00"
- };
- let obj1 = formBindingData.createFormBindingData(dataObj1);
- return obj1;
+ export default class MyFormExtension extends FormExtension {
+ onCreate(want) {
+ console.log('FormExtension onCreate, want:' + want.abilityName);
+ let dataObj1 = {
+ temperature:"11c",
+ "time":"11:00"
+ };
+ let obj1 = formBindingData.createFormBindingData(dataObj1);
+ return obj1;
+ }
}
```
@@ -68,8 +70,10 @@ onCastToNormal(formId: string): void
- 示例:
```
- onCastToNormal(formId) {
- console.log('FormExtension onCastToNormal, formId:' + formId);
+ export default class MyFormExtension extends FormExtension {
+ onCastToNormal(formId) {
+ console.log('FormExtension onCastToNormal, formId:' + formId);
+ }
}
```
@@ -88,14 +92,16 @@ onUpdate(formId: string): void
- 示例:
```
- onUpdate(formId) {
- console.log('FormExtension onUpdate, formId:' + formId);
- let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"});
- this.context.updateForm(formId, obj2)
- .then((data)=>{
- console.log('FormExtension context updateForm, data:' + data);
- }).catch((error) => {
- console.error('Operation updateForm failed. Cause: ' + error);});
+ export default class MyFormExtension extends FormExtension {
+ onUpdate(formId) {
+ console.log('FormExtension onUpdate, formId:' + formId);
+ let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"});
+ this.context.updateForm(formId, obj2)
+ .then((data)=>{
+ console.log('FormExtension context updateForm, data:' + data);
+ }).catch((error) => {
+ console.error('Operation updateForm failed. Cause: ' + error);});
+ }
}
```
@@ -114,17 +120,19 @@ onVisibilityChange(newStatus: { [key: string]: number }): void
- 示例:
```
- onVisibilityChange(newStatus) {
- console.log('FormExtension onVisibilityChange, newStatus:' + newStatus);
- let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"});
-
- for (let key in newStatus) {
- console.log('FormExtension onVisibilityChange, key:' + key + ", value=" + newStatus[key]);
- this.context.updateForm(key, obj2)
- .then((data)=>{
- console.log('FormExtension context updateForm, data:' + data);
- }).catch((error) => {
- console.error('Operation updateForm failed. Cause: ' + error);});
+ export default class MyFormExtension extends FormExtension {
+ onVisibilityChange(newStatus) {
+ console.log('FormExtension onVisibilityChange, newStatus:' + newStatus);
+ let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"});
+
+ for (let key in newStatus) {
+ console.log('FormExtension onVisibilityChange, key:' + key + ", value=" + newStatus[key]);
+ this.context.updateForm(key, obj2)
+ .then((data)=>{
+ console.log('FormExtension context updateForm, data:' + data);
+ }).catch((error) => {
+ console.error('Operation updateForm failed. Cause: ' + error);});
+ }
}
}
```
@@ -145,8 +153,10 @@ onEvent(formId: string, message: string): void
- 示例:
```
- onEvent(formId, message) {
- console.log('FormExtension onEvent, formId:' + formId + ", message:" + message);
+ export default class MyFormExtension extends FormExtension {
+ onEvent(formId, message) {
+ console.log('FormExtension onEvent, formId:' + formId + ", message:" + message);
+ }
}
```
@@ -165,7 +175,9 @@ onDestroy(formId: string): void
- 示例:
```
- onDestroy(formId) {
- console.log('FormExtension onDestroy, formId:' + formId);
+ export default class MyFormExtension extends FormExtension {
+ onDestroy(formId) {
+ console.log('FormExtension onDestroy, formId:' + formId);
+ }
}
```
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-huks.md b/zh-cn/application-dev/reference/apis/js-apis-huks.md
new file mode 100755
index 0000000000000000000000000000000000000000..6efd2885bf3807dd7337ddc920aeb38ed42aab11
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-huks.md
@@ -0,0 +1,1116 @@
+# 通用密钥库系统
+
+向应用提供密钥库能力,包括密钥管理及密钥的密码学操作等功能。
+
+HUKS所管理的密钥可以由应用导入或者由应用调用HUKS接口生成。
+
+## 导入模块
+
+```js
+import huks from '@ohos.security.huks'
+```
+## HuksErrorCode
+
+表示错误码的枚举。
+
+| 名称 | 值 | 说明 |
+| -------------------------- | ----- | ---- |
+| HUKS_SUCCESS | 0 |表示成功。表示当前设备连接的充电器类型。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_FAILURE | -1 |表示失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_BAD_STATE | -2 |表示错误的状态。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_ARGUMENT | -3 |表示无效的数据。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_NOT_SUPPORTED | -4 |表示不支持。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_NO_PERMISSION | -5 |表示没有许可。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INSUFFICIENT_DATA | -6 |表示数据不足。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_BUFFER_TOO_SMALL | -7 |表示缓冲区太小。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INSUFFICIENT_MEMORY | -8 |表示内存不足。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_COMMUNICATION_FAILURE | -9 |表示通讯失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_STORAGE_FAILURE | -10 |表示存储故障。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_HARDWARE_FAILURE | -11 |表示硬件故障。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_ALREADY_EXISTS | -12 |表示已经存在。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_NOT_EXIST | -13 |表示不存在。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_NULL_POINTER | -14 |表示空指针。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_FILE_SIZE_FAIL | -15 |表示文件大小失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_READ_FILE_FAIL | -16 |表示读取文件失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_PUBLIC_KEY | -17 |表示无效的公钥。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_PRIVATE_KEY | -18 |表示无效的私钥。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_KEY_INFO | -19 |表示无效的密钥信息。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_HASH_NOT_EQUAL | -20 |表示哈希不相等。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_MALLOC_FAIL | -21 |表示MALLOC 失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_WRITE_FILE_FAIL | -22 |表示写文件失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_REMOVE_FILE_FAIL | -23 |表示删除文件失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_OPEN_FILE_FAIL | -24 |表示打开文件失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_CLOSE_FILE_FAIL | -25 |表示关闭文件失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_MAKE_DIR_FAIL | -26 |表示创建目录失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_KEY_FILE | -27 |表示无效的密钥文件。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_IPC_MSG_FAIL | -28 |表示IPC 信息失败。**系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_REQUEST_OVERFLOWS | -29 |表示请求溢出。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_PARAM_NOT_EXIST | -30 |表示参数不存在。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_CRYPTO_ENGINE_ERROR | -31 |表示CRYPTO ENGINE错误。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_COMMUNICATION_TIMEOUT | -32 |表示通讯超时。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_IPC_INIT_FAIL | -33 |表示IPC 初始化失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_IPC_DLOPEN_FAIL | -34 |表示IPC DLOPEN 失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_EFUSE_READ_FAIL | -35 |表示EFUSE 读取失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_NEW_ROOT_KEY_MATERIAL_EXIST | -36 |表示存在新的根密钥材料。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_UPDATE_ROOT_KEY_MATERIAL_FAIL | -37 |表示更新根密钥材料失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_VERIFICATION_FAILED | -38 |表示验证证书链失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_CHECK_GET_ALG_FAIL | -100 |表示检查获取 ALG 失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_CHECK_GET_KEY_SIZE_FAIL | -101 |表示检查获取密钥大小失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_CHECK_GET_PADDING_FAIL | -102 |表示检查获取填充失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_CHECK_GET_PURPOSE_FAIL | -103 |表示检查获取目的失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_CHECK_GET_DIGEST_FAIL | -104 |表示检查获取摘要失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_CHECK_GET_MODE_FAIL | -105 |表示检查获取模式失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_CHECK_GET_NONCE_FAIL | -106 |表示检查获取随机数失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_CHECK_GET_AAD_FAIL | -107 |表示检查获取 AAD 失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_CHECK_GET_IV_FAIL | -108 |表示检查 GET IV 失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_CHECK_GET_AE_TAG_FAIL | -109 |表示检查获取 AE 标记失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_CHECK_GET_SALT_FAIL | -110 |表示检查获取SALT失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_CHECK_GET_ITERATION_FAIL | -111 |表示检查获取迭代失败。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_ALGORITHM | -112 |表示无效的算法。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_KEY_SIZE | -113 |表示无效的密钥大小。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_PADDING | -114 |表示无效的填充。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_PURPOSE | -115 |表示无效的目的。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_MODE | -116 |表示无效模式。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_DIGEST | -117 |表示无效的摘要。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_SIGNATURE_SIZE | -118 |表示签名大小无效。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_IV | -119 |表示无效的 IV。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_AAD | -120 |表示无效的 AAD。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_NONCE | -121 |表示无效的随机数。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_AE_TAG | -122 |表示无效的 AE 标签。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_SALT | -123 |表示无效SALT。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_ITERATION | -124 |表示无效的迭代。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INVALID_OPERATION | -125 |表示无效操作。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_INTERNAL_ERROR | -999 |表示内部错误。 **系统能力**:SystemCapability.Security.Huks|
+| HUKS_ERROR_UNKNOWN_ERROR | -1000 |表示未知错误。 **系统能力**:SystemCapability.Security.Huks|
+
+
+## HuksKeyPurpose
+
+表示密钥(密钥对)用途。
+
+| 名称 | 值 | 说明 |
+| ------------------------ | ---- | ------------------------------------------------------------ |
+| HUKS_KEY_PURPOSE_ENCRYPT | 1 | 表示密钥(密钥对)用于对明文进行加密操作。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_KEY_PURPOSE_DECRYPT | 2 | 表示密钥(密钥对)用于对密文进行解密操作。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_KEY_PURPOSE_SIGN | 4 | 表示密钥对用于对数据进行签名。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_KEY_PURPOSE_VERIFY | 8 | 表示密钥对用于验证签名后的数据。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_KEY_PURPOSE_DERIVE | 16 | 表示密钥用于派生密钥。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_KEY_PURPOSE_WRAP | 32 | 表示密钥用于加密导入。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_KEY_PURPOSE_UNWRAP | 64 | 表示密钥加密导出。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_KEY_PURPOSE_MAC | 128 | 表示密钥用于生成mac消息验证码。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_KEY_PURPOSE_AGREE | 256 | 表示密钥对用于进行密钥协商。 **系统能力**:SystemCapability.Security.Huks |
+
+## HuksKeyDigest
+
+表示摘要算法。
+
+| 名称 | 值 | 说明 |
+| ---------------------- | ---- | ---------------------------------------- |
+| HUKS_DIGEST_NONE | 0 | 表示无摘要算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_DIGEST_MD5 | 1 | 表示MD5摘要算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_DIGEST_SHA1 | 10 | 表示SHA1摘要算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_DIGEST_SHA224 | 11 | 表示SHA224摘要算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_DIGEST_SHA256 | 12 | 表示SHA256摘要算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_DIGEST_SHA384 | 13 | 表示SHA384摘要算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_DIGEST_SHA512 | 14 | 表示SHA512摘要算法。 **系统能力**:SystemCapability.Security.Huks |
+
+## HuksKeyPadding
+
+表示补齐算法。
+
+| 名称 | 值 | 说明 |
+| ---------------------- | ---- | ---------------------------------------- |
+| HUKS_PADDING_NONE | 0 | 表示不使用补齐算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_PADDING_OAEP | 1 | 表示使用OAEP补齐算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_PADDING_PSS | 2 | 表示使用PSS补齐算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_PADDING_PKCS1_V1_5 | 3 | 表示使用PKCS1_V1_5补齐算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_PADDING_PKCS5 | 4 | 表示使用PKCS5补齐算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_PADDING_PKCS7 | 5 | 表示使用PKCS7补齐算法。 **系统能力**:SystemCapability.Security.Huks |
+
+## HuksCipherMode
+
+表示加密模式。
+
+| 名称 | 值 | 说明 |
+| ------------- | ---- | ------------------------------------------------------------ |
+| HUKS_MODE_ECB | 1 | 表示使用ECB加密模式。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_MODE_CBC | 2 | 表示使用CBC加密模式。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_MODE_CTR | 3 | 表示使用CTR加密模式。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_MODE_OFB | 4 | 表示使用OFB加密模式。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_MODE_CCM | 31 | 表示使用CCM加密模式。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_MODE_GCM | 32 | 表示使用GCM加密模式。 **系统能力**:SystemCapability.Security.Huks |
+
+## HuksKeySize
+
+表示密钥(密钥对)长度。
+
+| 名称 | 值 | 说明 |
+| ---------------------------- | ---- | ------------------------------------------------------------ |
+| HUKS_RSA_KEY_SIZE_512 | 512 | 表示使用RSA算法的密钥对长度为512bit。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_RSA_KEY_SIZE_768 | 768 | 表示使用RSA算法的密钥对长度为768bit。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_RSA_KEY_SIZE_1024 | 1024 | 表示使用RSA算法的密钥对长度为1024bit。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_RSA_KEY_SIZE_2048 | 2048 | 表示使用RSA算法的密钥对长度为2048bit。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_RSA_KEY_SIZE_3072 | 3072 | 表示使用RSA算法的密钥对长度为3072bit。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_RSA_KEY_SIZE_4096 | 4096 | 表示使用RSA算法的密钥对长度为4096bit。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_ECC_KEY_SIZE_224 | 224 | 表示使用ECC算法的密钥对长度为224bit。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_ECC_KEY_SIZE_256 | 256 | 表示使用ECC算法的密钥对长度为256bit。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_ECC_KEY_SIZE_384 | 384 | 表示使用ECC算法的密钥对长度为384bit。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_ECC_KEY_SIZE_521 | 521 | 表示使用ECC算法的密钥对长度为521bit。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_AES_KEY_SIZE_128 | 128 | 表示使用AES算法的密钥长度为128bit。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_AES_KEY_SIZE_192 | 196 | 表示使用AES算法的密钥长度为196bit。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_AES_KEY_SIZE_256 | 256 | 表示使用AES算法的密钥长度为256bit。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_AES_KEY_SIZE_512 | 512 | 表示使用AES算法的密钥长度为512bit。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_CURVE25519_KEY_SIZE_256 | 256 | 表示使用CURVE25519算法的密钥对长度为256bit。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_DH_KEY_SIZE_2048 | 2048 | 表示使用DH算法的密钥对长度为2048bit。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_DH_KEY_SIZE_3072 | 3072 | 表示使用DH算法的密钥对长度为3072bit。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_DH_KEY_SIZE_4096 | 4096 | 表示使用DH算法的密钥对长度为4096bit。 **系统能力**:SystemCapability.Security.Huks |
+
+## HuksKeyAlg
+
+表示密钥使用的算法。
+
+| 名称 | 值 | 说明 |
+| ---------------- | ---- | ------------------------------------------------------------ |
+| HUKS_ALG_RSA | 1 | 表示使用RSA算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_ALG_ECC | 2 | 表示使用ECC算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_ALG_DSA | 3 | 表示使用DSA算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_ALG_AES | 20 | 表示使用AES算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_ALG_HMAC | 50 | 表示使用HMAC算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_ALG_HKDF | 51 | 表示使用HKDF算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_ALG_PBKDF2 | 52 | 表示使用PBKDF2算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_ALG_ECDH | 100 | 表示使用ECDH算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_ALG_X25519 | 101 | 表示使用X25519算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_ALG_ED25519 | 102 | 表示使用ED25519算法。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_ALG_DH | 103 | 表示使用DH算法。 **系统能力**:SystemCapability.Security.Huks |
+
+## HuksKeyGenerateType
+
+表示生成密钥的类型。
+
+| 名称 | 值 | 说明 |
+| ------------------------------ | ---- | ------------------------------------------------------------ |
+| HUKS_KEY_GENERATE_TYPE_DEFAULT | 0 | 默认生成的密钥。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_KEY_GENERATE_TYPE_DERIVE | 1 | 派生生成的密钥。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_KEY_GENERATE_TYPE_AGREE | 2 | 协商生成的密钥。 **系统能力**:SystemCapability.Security.Huks |
+
+## HuksKeyFlag
+
+表示密钥的产生方式。
+
+| 名称 | 值 | 说明 |
+| -------------------------- | ---- | ------------------------------ |
+| HUKS_KEY_FLAG_IMPORT_KEY | 1 | 表示通过导入公钥接口导入的密钥。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_KEY_FLAG_GENERATE_KEY | 2 | 表示通过生成密钥接口生成的密钥。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_KEY_FLAG_AGREE_KEY | 3 | 表示通过生成密钥协商接口生成的密钥。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_KEY_FLAG_DERIVE_KEY | 4 | 表示通过生成密钥派生接口生成的密钥。 **系统能力**:SystemCapability.Security.Huks |
+
+## HuksKeyStorageType
+
+表示密钥存储方式。
+
+| 名称 | 值 | 说明 |
+| ----------------------- | ---- | ------------------------------------------------------------ |
+| HUKS_STORAGE_TEMP | 0 | 表示通过本地直接管理密钥。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_STORAGE_PERSISTENT | 1 | 表示通过HUKS service管理密钥。 **系统能力**:SystemCapability.Security.Huks |
+
+## HuksSendType
+
+| 名称 | 值 | 说明 |
+| -------------------- | ---- | ------------------------------------------------------------ |
+| HUKS_SEND_TYPE_ASYNC | 0 | 表示异步发送TAG。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_SEND_TYPE_SYNC | 1 | 表示同步发送TAG。 **系统能力**:SystemCapability.Security.Huks |
+
+## HuksTagType
+
+表示Tag的数据类型。
+
+| 名称 | 值 | 说明 |
+| --------------------- | ------- | ------------------------------------------------------------ |
+| HUKS_TAG_TYPE_INVALID | 0 << 28 | 表示非法的Tag类型。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_TYPE_INT | 1 << 28 | 表示该Tag的数据类型为number。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_TYPE_UINT | 2 << 28 | 表示该Tag的数据类型为number。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_TYPE_ULONG | 3 << 28 | 表示该Tag的数据类型为bigint。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_TYPE_BOOL | 4 << 28 | 表示该Tag的数据类型为boolean。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_TYPE_BYTES | 5 << 28 | 表示该Tag的数据类型为Uint8Array。 **系统能力**:SystemCapability.Security.Huks |
+
+## HuksTag
+
+表示调用参数的Tag。
+
+| 名称 | 值 | 说明 |
+| -------------------------------------- | ---------------------------------------- | ------------------------------------------------------------ |
+| HUKS_TAG_INVALID | HuksTagType.HUKS_TAG_TYPE_INVALID \| 0 | 表示非法的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ALGORITHM | HUKS_TAG_TYPE_UINT \| 1 | 表示算法的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_PURPOSE | HuksTagType.HUKS_TAG_TYPE_UINT \| 2 | 表示密钥(密钥对)用途的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_KEY_SIZE | HuksTagType.HUKS_TAG_TYPE_UINT \| 3 | 表示密钥(密钥对)长度的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_DIGEST | HuksTagType.HUKS_TAG_TYPE_UINT \| 4 | 表示摘要算法的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_PADDING | HuksTagType.HUKS_TAG_TYPE_UINT \| 5 | 表示补齐算法的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_BLOCK_MODE | HuksTagType.HUKS_TAG_TYPE_UINT \| 6 | 表示加密模式的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_KEY_TYPE | HuksTagType.HUKS_TAG_TYPE_UINT \| 7 | 表示密钥类型的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ASSOCIATED_DATA | HuksTagType.HUKS_TAG_TYPE_BYTES \| 8 | 表示表示附加身份验证数据的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_NONCE | HuksTagType.HUKS_TAG_TYPE_BYTES \| 9 | 表示表示密钥偏移量的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_IV | HuksTagType.HUKS_TAG_TYPE_BYTES \| 10 | 表示表示密钥偏移量的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_INFO | HuksTagType.HUKS_TAG_TYPE_BYTES \| 11 | 表示密钥派生时的info。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_SALT | HuksTagType.HUKS_TAG_TYPE_BYTES \| 12 | 表示密钥派生时的盐值。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_PWD | HuksTagType.HUKS_TAG_TYPE_BYTES \| 13 | 表示密钥派生时的password。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ITERATION | HuksTagType.HUKS_TAG_TYPE_UINT \| 14 | 表示密钥派生时的迭代次数。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_KEY_GENERATE_TYPE | HuksTagType.HUKS_TAG_TYPE_UINT \| 15 | 表示生成密钥类型的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_DERIVE_MAIN_KEY | HuksTagType.HUKS_TAG_TYPE_BYTES \| 16 | 表示密钥派生时的主密钥。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_DERIVE_FACTOR | HuksTagType.HUKS_TAG_TYPE_BYTES \| 17 | 表示密钥派生时的派生因子。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_DERIVE_ALG | HuksTagType.HUKS_TAG_TYPE_UINT \| 18 | 表示密钥派生时的算法类型。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_AGREE_ALG | HuksTagType.HUKS_TAG_TYPE_UINT \| 19 | 表示密钥协商时的算法类型。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_AGREE_PUBLIC_KEY_IS_KEY_ALIAS | HuksTagType.HUKS_TAG_TYPE_BOOL \| 20 | 表示密钥协商时的公钥别名 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_AGREE_PRIVATE_KEY_ALIAS | HuksTagType.HUKS_TAG_TYPE_BYTES \| 21 | 表示密钥协商时的私钥别名 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_AGREE_PUBLIC_KEY | HuksTagType.HUKS_TAG_TYPE_BYTES \| 22 | 表示密钥协商时的公钥 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_KEY_ALIAS | HuksTagType.HUKS_TAG_TYPE_BYTES \| 23 | 表示密钥别名。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_DERIVE_KEY_SIZE | HuksTagType.HUKS_TAG_TYPE_UINT \| 24 | 表示派生密钥的大小。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ACTIVE_DATETIME | HuksTagType.HUKS_TAG_TYPE_ULONG \| 201 | 预留。 |
+| HUKS_TAG_ORIGINATION_EXPIRE_DATETIME | HuksTagType.HUKS_TAG_TYPE_ULONG \| 202 | 预留。 |
+| HUKS_TAG_USAGE_EXPIRE_DATETIME | HuksTagType.HUKS_TAG_TYPE_ULONG \| 203 | 预留。 |
+| HUKS_TAG_CREATION_DATETIME | HuksTagType.HUKS_TAG_TYPE_ULONG \| 204 | 预留。 |
+| HUKS_TAG_ALL_USERS | ksTagType.HUKS_TAG_TYPE_BOOL \| 301 | 预留。 |
+| HUKS_TAG_USER_ID | HuksTagType.HUKS_TAG_TYPE_UINT \| 302 | 预留。 |
+| HUKS_TAG_NO_AUTH_REQUIRED | HuksTagType.HUKS_TAG_TYPE_BOOL \| 303 | 预留。 |
+| HUKS_TAG_USER_AUTH_TYPE | HuksTagType.HUKS_TAG_TYPE_UINT \| 304 | 预留。 |
+| HUKS_TAG_AUTH_TIMEOUT | HuksTagType.HUKS_TAG_TYPE_UINT \| 305 | 预留。 |
+| HUKS_TAG_AUTH_TOKEN | HuksTagType.HUKS_TAG_TYPE_BYTES \| 306 | 预留。 |
+| HUKS_TAG_ATTESTATION_CHALLENGE | HuksTagType.HUKS_TAG_TYPE_BYTES \| 501 | 表示attestation时的挑战值。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ATTESTATION_APPLICATION_ID | HuksTagType.HUKS_TAG_TYPE_BYTES \| 502 | 表示attestation时的application Id。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ATTESTATION_ID_BRAND | HuksTagType.HUKS_TAG_TYPE_BYTES \| 503 | 表示设备的brand。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ATTESTATION_ID_DEVICE | HuksTagType.HUKS_TAG_TYPE_BYTES \| 504 | 表示设备的device。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ATTESTATION_ID_PRODUCT | HuksTagType.HUKS_TAG_TYPE_BYTES \| 505 | 表示设备的product。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ATTESTATION_ID_SERIAL | HuksTagType.HUKS_TAG_TYPE_BYTES \| 506 | 表示设备的SN号。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ATTESTATION_ID_IMEI | HuksTagType.HUKS_TAG_TYPE_BYTES \| 507 | 表示设备的IMEI号。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ATTESTATION_ID_MEID | HuksTagType.HUKS_TAG_TYPE_BYTES \| 508 | 表示设备的MEID号。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ATTESTATION_ID_MANUFACTURER | HuksTagType.HUKS_TAG_TYPE_BYTES \| 509 | 表示设备的制造商。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ATTESTATION_ID_MODEL | HuksTagType.HUKS_TAG_TYPE_BYTES \| 510 | 表示设备的型号。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ATTESTATION_ID_ALIAS | HuksTagType.HUKS_TAG_TYPE_BYTES \| 511 | 表示attestation时的密钥别名。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ATTESTATION_ID_SOCID | HuksTagType.HUKS_TAG_TYPE_BYTES \| 512 | 表示设备的SOCID。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ATTESTATION_ID_UDID | HuksTagType.HUKS_TAG_TYPE_BYTES \| 513 | 表示设备的UDID。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ATTESTATION_ID_SEC_LEVEL_INFO | HuksTagType.HUKS_TAG_TYPE_BYTES \| 514 | 表示attestation时的安全凭据。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_ATTESTATION_ID_VERSION_INFO | HuksTagType.HUKS_TAG_TYPE_BYTES \| 515 | 表示attestation时的版本号。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_IS_KEY_ALIAS | HuksTagType.HUKS_TAG_TYPE_BOOL \| 1001 | 表示是否使用生成key时传入的别名的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_KEY_STORAGE_FLAG | HuksTagType.HUKS_TAG_TYPE_UINT \| 1002 | 表示密钥存储方式的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_IS_ALLOWED_WRAP | HuksTagType.HUKS_TAG_TYPE_BOOL \| 1003 | 预留。 |
+| HUKS_TAG_KEY_WRAP_TYPE | HuksTagType.HUKS_TAG_TYPE_UINT \| 1004 | 预留。 |
+| HUKS_TAG_KEY_AUTH_ID | HuksTagType.HUKS_TAG_TYPE_BYTES \| 1005 | 预留。 |
+| HUKS_TAG_KEY_ROLE | HuksTagType.HUKS_TAG_TYPE_UINT \| 1006 | 预留。 |
+| HUKS_TAG_KEY_FLAG | HuksTagType.HUKS_TAG_TYPE_UINT \| 1007 | 表示密钥标志的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_IS_ASYNCHRONIZED | HuksTagType.HUKS_TAG_TYPE_UINT \| 1008 | 预留。 |
+| HUKS_TAG_SECURE_KEY_ALIAS | HuksTagType.HUKS_TAG_TYPE_BOOL \| 1009 | 预留。 |
+| HUKS_TAG_SECURE_KEY_UUID | HuksTagType.HUKS_TAG_TYPE_BYTES \| 1010 | 预留。 |
+| HUKS_TAG_KEY_DOMAIN | HuksTagType.HUKS_TAG_TYPE_UINT \| 1011 | 预留。 |
+| HUKS_TAG_PROCESS_NAME | HuksTagType.HUKS_TAG_TYPE_BYTES \| 10001 | 表示进程名称的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_PACKAGE_NAME | HuksTagType.HUKS_TAG_TYPE_BYTES \| 10002 | 预留。 |
+| HUKS_TAG_ACCESS_TIME | HuksTagType.HUKS_TAG_TYPE_UINT \| 10003 | 预留。 |
+| HUKS_TAG_USES_TIME | HuksTagType.HUKS_TAG_TYPE_UINT \| 10004 | 预留。 |
+| HUKS_TAG_CRYPTO_CTX | HuksTagType.HUKS_TAG_TYPE_ULONG \| 10005 | 预留。 |
+| HUKS_TAG_KEY | HuksTagType.HUKS_TAG_TYPE_BYTES \| 10006 | 预留。 |
+| HUKS_TAG_KEY_VERSION | HuksTagType.HUKS_TAG_TYPE_UINT \| 10007 | 表示密钥版本的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_PAYLOAD_LEN | HuksTagType.HUKS_TAG_TYPE_UINT \| 10008 | 预留。 |
+| HUKS_TAG_AE_TAG | HuksTagType.HUKS_TAG_TYPE_BYTES \| 10009 | 预留。 |
+| HUKS_TAG_IS_KEY_HANDLE | HuksTagType.HUKS_TAG_TYPE_ULONG \| 10010 | 预留。 |
+| HUKS_TAG_OS_VERSION | HuksTagType.HUKS_TAG_TYPE_UINT \| 10101 | 表示操作系统版本的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_OS_PATCHLEVEL | HuksTagType.HUKS_TAG_TYPE_UINT \| 10102 | 表示操作系统补丁级别的Tag。 **系统能力**:SystemCapability.Security.Huks |
+| HUKS_TAG_SYMMETRIC_KEY_DATA | HuksTagType.HUKS_TAG_TYPE_BYTES \| 20001 | 预留。 |
+| HUKS_TAG_ASYMMETRIC_PUBLIC_KEY_DATA | HuksTagType.HUKS_TAG_TYPE_BYTES \| 20002 | 预留。 |
+| HUKS_TAG_ASYMMETRIC_PRIVATE_KEY_DATA | HuksTagType.HUKS_TAG_TYPE_BYTES \| 20003 | 预留。 |
+
+## huks.generateKey
+
+generateKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback\) : void
+
+通过Callback方法生成密钥(密钥对)。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
+| keyAlias | string | 是 | 别名。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | 用于存放生成key所需TAG。 **系统能力**:SystemCapability.Security.Huks |
+| callback | AsyncCallback\<[HuksResult](#huksresult)> | 是 | 返回HUKS_SUCCESS时表示接口使用成功,其余结果请参考HuksResult进行错误码查询。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var alias = 'alias;
+var properties = new Array();
+properties[0] = {
+ tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
+ value: huksHukssKeyAlg.HUKS_ALG_RSA
+};
+properties[1] = {
+ tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,
+ value: huks.HuksKeySize.HUKS_RSA_KEY_SIZE_512
+};
+properties[2] = {
+ tag: huks.HuksTag.HUKS_TAG_PURPOSE,
+ value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_ENCRYPT | huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_DECRYPT
+};
+properties[3] = {
+ tag: huks.HuksTag.HUKS_TAG_PADDING,
+ value: huks.HuksKeyPadding.HUKS_PADDING_NONE
+};
+properties[4] = {
+ tag: huks.HuksTag.HUKS_TAG_BLOCK_MODE,
+ value: huks.HuksCipherMode.HUKS_MODE_ECB
+};
+properties[5] = {
+ tag: huks.HuksTag.HUKS_TAG_DIGEST,
+ value: huks.HuksKeyDigest.HUKS_DIGEST_NONE
+};
+var options = {
+ properties: properties
+};
+huks.generateKey(alias, options, function (err, data){});
+```
+
+## huks.generateKey
+
+generateKey(keyAlias: string, options: HuksOptions) : Promise\
+
+通过Promise方法生成密钥(密钥对)。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
+| keyAlias | string | 是 | 密钥别名。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | 用于存放生成key所需TAG。 **系统能力**:SystemCapability.Security.Huks |
+
+**返回值**:(可选,如不涉及可删除)
+
+| 类型 | 说明 |
+| ----------------------------------- | ------------------------------------------------------------ |
+| Promise\<[HuksResult](#huksresult)> | 返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var alias = 'alias';
+var properties = new Array();
+properties[0] = {
+ tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
+ value: huksHuksKeyAlg.HUKS_ALG_RSA
+};
+properties[1] = {
+ tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,
+ value: huks.HuksKeySize.HUKS_RSA_KEY_SIZE_512
+};
+properties[2] = {
+ tag: huks.HuksTag.HUKS_TAG_PURPOSE,
+ value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_ENCRYPT | huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_DECRYPT
+};
+properties[3] = {
+ tag: huks.HuksTag.HUKS_TAG_PADDING,
+ value: huks.HuksKeyPadding.HUKS_PADDING_NONE
+};
+properties[4] = {
+ tag: huks.HuksTag.HUKS_TAG_BLOCK_MODE,
+ value: huks.HuksCipherMode.HUKS_MODE_ECB
+};
+properties[5] = {
+ tag: huks.HuksTag.HUKS_TAG_DIGEST,
+ value: huks.HuksKeyDigest.HUKS_DIGEST_NONE
+};
+var options = {
+ properties: properties
+};
+var result = await huks.generateKey(alias, options);
+```
+
+## huks.deleteKey
+
+deleteKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback\) : void
+
+针对Callback生成的密钥进行删除。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
+| keyAlias | string | 是 | 密钥别名,应为生成key时传入的别名。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | 空对象(此处传空即可)。 **系统能力**:SystemCapability.Security.Huks |
+| callback | AsyncCallback\<[HuksResult](#huksresult)> | 是 | 返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var alias = 'alias';
+var emptyOptions = {
+ properties: []
+};
+huks.deleteKey(alias, emptyOptions, function (err, data) {});
+```
+
+## huks.deleteKey
+
+deleteKey(keyAlias: string, options: HuksOptions) : Promise\
+
+针对Promise生成的密钥进行删除。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ----------- | ---- | ----------------------------------------------------- |
+| keyAlias | string | 是 | 密钥别名,应为生成key时传入的别名。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | 空对象(此处传空即可)。 **系统能力**:SystemCapability.Security.Huks |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ----------------------------------- | ------------------------------------------------------------ |
+| Promise\<[HuksResult](#huksresult)> | 返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var alias = 'alias';
+var emptyOptions = {
+ properties: []
+};
+var result = await huks.deleteKey(alias, emptyOptions);
+```
+
+## huks.getSdkVersion
+
+getSdkVersion(options: HuksOptions) : string
+
+获取当前系统sdk版本。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------- | ---------- | ---- | ------------------------- |
+| options | [HuksOptions](#huksoptions) | 是 | 空对象,用于存放sdk版本。 **系统能力**:SystemCapability.Security.Huks |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ------ | ------------------------------------------------------------ |
+| string | 返回sdk版本。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var emptyOptions = {
+ properties: []
+};
+var result = await huks.getSdkVersion(emptyOptions);
+```
+
+## huks.importKey
+
+importKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback\) : void
+
+导入Callback方法生成的密钥对 。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ------------------------ | ---- | ------------------------------------------------- |
+| keyAlias | string | 是 | 密钥别名,用于存放所需密钥。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | 用于导入时所需TAG和需要导入的密钥。 **系统能力**:SystemCapability.Security.Huks |
+| callback | AsyncCallback\<[HuksResult](#huksresult)> | 是 | 返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var keyAlias = 'keyAlias';
+var properties = new Array();
+properties[0] = {
+ tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
+ value: huks.HuksKeyAlg.HUKS_ALG_DSA
+};
+properties[1] = {
+ tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,
+ value: 1024
+};
+properties[2] = {
+ tag: huks.HuksTag.HUKS_TAG_PURPOSE,
+ value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_VERIFY
+};
+properties[3] = {
+ tag: huks.HuksTag.HUKS_TAG_PADDING,
+ value: huks.HuksKeyPadding.HUKS_PADDING_NONE
+};
+properties[4] = {
+ tag: huks.HuksTag.HUKS_TAG_DIGEST,
+ value: HUKS_DIGEST_SHA1
+};
+var options = {
+ properties: properties,
+ inData: importText
+};
+huks.importKey(keyAlias, options, function (err, data){});
+```
+
+## huks.importKey
+
+importKey(keyAlias: string, options: HuksOptions) : Promise\
+
+导入Promise方法生成的密钥对。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ----------- | ---- | ------------------------------------ |
+| keyAlias | string | 是 | 密钥别名,用于存放所需密钥。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | 用于导入时所需TAG和需要导入的密钥。 **系统能力**:SystemCapability.Security.Huks |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ----------------------------------- | ------------------------------------------------------------ |
+| Promise\<[HuksResult](#huksresult)> | 返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var keyAlias = 'keyAlias';
+var properties = new Array();
+properties[0] = {
+ tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
+ value: huks.HuksKeyAlg.HUKS_ALG_DSA
+};
+properties[1] = {
+ tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,
+ value: 1024
+};
+properties[2] = {
+ tag: huks.HuksTag.HUKS_TAG_PURPOSE,
+ value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_VERIFY
+};
+properties[3] = {
+ tag: huks.HuksTag.HUKS_TAG_PADDING,
+ value: huks.HuksKeyPadding.HUKS_PADDING_NONE
+};
+properties[4] = {
+ tag: huks.HuksTag.HUKS_TAG_DIGEST,
+ value: HUKS_DIGEST_SHA1
+};
+var options = {
+ properties: properties,
+ inData: importText
+};
+var result = await huks.importKey(keyAlias, options);
+```
+
+## huks.exportKey
+
+exportKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback\) : void
+
+导出Callback方法生成的密钥对。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
+| keyAlias | string | 是 | 密钥别名,应与所用密钥生成时使用的别名相同。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | 空对象(此处传空即可)。 **系统能力**:SystemCapability.Security.Huks |
+| callback | AsyncCallback\<[HuksResult](#huksresult)> | 是 | 返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。outData:返回从密钥中导出的公钥。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var keyAlias = 'keyAlias';
+var emptyOptions = {
+ properties: []
+};
+huks.exportKey(keyAlias, emptyOptions, function (err, data){});
+```
+
+## huks.exportKey
+
+exportKey(keyAlias: string, options: HuksOptions) : Promise\
+
+导出Promise方法生成的密钥对。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ----------- | ---- | ------------------------------------------------------------ |
+| keyAlias | string | 是 | 密钥别名,应与所用密钥生成时使用的别名相同。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | 空对象(此处传空即可)。 **系统能力**:SystemCapability.Security.Huks |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ----------------------------------- | ------------------------------------------------------------ |
+| Promise\<[HuksResult](#huksresult)> | 返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。outData:返回从密钥中导出的公钥。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var keyAlias = 'keyAlias';
+var emptyOptions = {
+ properties: []
+};
+var result = await huks.exportKey(keyAlias, emptyOptions);
+```
+
+## huks.getKeyProperties
+
+getKeyProperties(keyAlias: string, options: HuksOptions, callback: AsyncCallback\) : void
+
+获取Callback方法生成的密钥属性。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
+| keyAlias | string | 是 | 密钥别名,应与所用密钥生成时使用的别名相同。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | 空对象(此处传空即可)。 **系统能力**:SystemCapability.Security.Huks |
+| callback | AsyncCallback\<[HuksResult](#huksresult)> | 是 | errorCode:返回HUKS_SUCCESS时表示接口使用成功,其他时为错误properties:返回值为从生成key时传入的别名。中导出的生成密钥时所需参数。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var keyAlias = 'keyAlias';
+var emptyOptions = {
+ properties: []
+};
+huks.getKeyProperties(keyAlias, emptyOptions, function (err, data){});
+```
+
+## huks.getKeyProperties
+
+getKeyProperties(keyAlias: string, options: HuksOptions) : Promise\
+
+获取Promise方法生成的密钥属性。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ----------- | ---- | ------------------------------------------------------------ |
+| keyAlias | string | 是 | 密钥别名,应与所用密钥生成时使用的别名相同。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | 空对象(此处传空即可)。 **系统能力**:SystemCapability.Security.Huks |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ------------------ | ------------------------------------------------------------ |
+| Promise\<[HuksResult](#huksoptions)> | errorCode:返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。properties:返回值为从生成key时传入的别名。中导出的生成密钥时所需参数。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var keyAlias = 'keyAlias';
+var emptyOptions = {
+ properties: []
+};
+var result = await huks.getKeyProperties(keyAlias, emptyOptions);
+```
+
+## huks.isKeyExist
+
+isKeyExist(keyAlias: string, options: HuksOptions, callback: AsyncCallback\) : void
+
+判断Callback方法生成的密钥是否存在 。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ---------------------- | ---- | ------------------------------------- |
+| keyAlias | string | 是 | 所需查找的密钥的别名。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | 空对象(此处传空即可)。 **系统能力**:SystemCapability.Security.Huks |
+| callback | AsyncCallback\ | 是 | FALSE代表密钥不存在,TRUE代表密钥存在。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var keyAlias = 'keyAlias';
+var emptyOptions = {
+ properties: []
+};
+huks.isKeyExist(keyAlias, emptyOptions, function (err, data){});
+```
+
+## huks.isKeyExist
+
+isKeyExist(keyAlias: string, options: HuksOptions) : Promise\
+
+判断Promise方法生成的密钥是否存在 。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ----------- | ---- | -------------------------------- |
+| keyAlias | string | 是 | 所需查找的密钥的别名。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | 空对象(此处传空即可)。 **系统能力**:SystemCapability.Security.Huks |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ----------------- | ------------------------------------------------------------ |
+| Promise\ | FALSE代表密钥不存在,TRUE代表密钥存在。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var keyAlias = 'keyAlias';
+var emptyOptions = {
+ properties: []
+};
+var result = await huks.isKeyExist(keyAlias, emptyOptions);
+```
+
+
+## huks.init
+
+init(keyAlias: string, options: HuksOptions, callback: AsyncCallback\) : void
+
+init操作接口,使用callback回调异步返回结果 。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ---------------------- | ---- | ------------------------------------- |
+| keyAlias | string | 是 | Init操作密钥的别名。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | Init操作的参数集合。 **系统能力**:SystemCapability.Security.Huks |
+| callback | AsyncCallback\<[HuksHandle](#hukshandle)> | 是 | 将Init操作操作返回的handle添加到密钥管理系统的回调。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var alias = 'test001'
+var properties = new Array();
+properties[0] = {
+ tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
+ value: huks.HksKeyAlg.HKS_ALG_DH
+};
+properties[1] = {
+ tag: huks.HksTag.HKS_TAG_PURPOSE,
+ value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
+};
+properties[2] = {
+ tag: huks.HksTag.HKS_TAG_KEY_SIZE
+ value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
+};
+var options = {
+ properties: properties
+};
+huks.init(alias, options, function(err, data) {
+ if (err.code !== 0) {
+ console.log("test init err information: " + JSON.stringify(err));
+ } else {
+ console.log(`test init data: ${JSON.stringify(data)}`);
+ }
+})
+```
+
+## huks.init
+
+init(keyAlias: string, options: HuksOptions) : Promise\
+
+init操作接口,使用Promise方式异步返回结果。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ---------------------- | ---- | ------------------------------------- |
+| keyAlias | string | 是 | Init操作密钥的别名。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | Init参数集合。 **系统能力**:SystemCapability.Security.Huks |
+| promise | Promise\<[HuksHandle](#hukshandle)> | 是 | 将Init操作返回的handle添加到密钥管理系统的回调。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var alias = 'test001'
+var properties = new Array();
+properties[0] = {
+ tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
+ value: huks.HksKeyAlg.HKS_ALG_DH
+};
+properties[1] = {
+ tag: huks.HksTag.HKS_TAG_PURPOSE,
+ value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
+};
+properties[2] = {
+ tag: huks.HksTag.HKS_TAG_KEY_SIZE
+ value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
+};
+ value: huks.HuksKeyDigest.HUKS_DIGEST_NONE
+};
+var options = {
+ properties: properties
+};
+huks.init(alias, options).then((data) => {
+ console.log(`test init data: ${JSON.stringify(data)}`);
+ handle1 = data.handle1;
+ handle2 = data.handle2;
+ handle = {
+ "handle1": handle1,
+ "handle2": handle2
+ };
+}).catch((err) => {
+ console.log("test init err information: " + JSON.stringify(err))
+})
+```
+
+
+## huks.update
+
+update(handle: number, token?: Uint8Array, options: HuksOptions, callback: AsyncCallback\) : void
+
+update操作接口,使用callback回调异步返回结果 。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ---------------------- | ---- | ------------------------------------- |
+| handle | number | 是 | Update操作的handle。 **系统能力**:SystemCapability.Security.Huks |
+| token | Uint8Array | 否 | Update操作的token。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | Update的参数集合。 **系统能力**:SystemCapability.Security.Huks |
+| callback | AsyncCallback\<[HksResult](#hksresult)> | 是 | 将Update操作的结果添加到密钥管理系统的回调。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var properties = new Array();
+properties[0] = {
+ tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
+ value: huks.HksKeyAlg.HKS_ALG_DH
+};
+properties[1] = {
+ tag: huks.HksTag.HKS_TAG_PURPOSE,
+ value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
+};
+properties[2] = {
+ tag: huks.HksTag.HKS_TAG_KEY_SIZE
+ value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
+};
+var options = {
+ properties: properties
+};
+huks.update(handle, options, function (err, data){});
+```
+
+## huks.update
+
+update(handle: number, token?: Uint8Array, options: HuksOptions) : Promis
+
+update操作接口,使用Promise方式异步返回结果。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ---------------------- | ---- | ------------------------------------- |
+| handle | number | 是 | Update操作的handle。 **系统能力**:SystemCapability.Security.Huks |
+| token | Uint8Array | 否 | Update操作的token。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | Update操作的参数集合。 **系统能力**:SystemCapability.Security.Huks |
+| promise | Promise\<[HuksResult](#huksresult)> | 是 | 将Update操作的结果添加到密钥管理系统的回调。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var properties = new Array();
+properties[0] = {
+ tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
+ value: huks.HksKeyAlg.HKS_ALG_DH
+};
+properties[1] = {
+ tag: huks.HksTag.HKS_TAG_PURPOSE,
+ value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
+};
+properties[2] = {
+ tag: huks.HksTag.HKS_TAG_KEY_SIZE
+ value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
+};
+ value: huks.HuksKeyDigest.HUKS_DIGEST_NONE
+};
+var options = {
+ properties: properties
+};
+var result = huks.update(handle, options)
+```
+
+## huks.finish
+
+finish(handle: number, options: HuksOptions, callback: AsyncCallback\) : void
+
+finish操作接口,使用callback回调异步返回结果 。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ---------------------- | ---- | ------------------------------------- |
+| handle | number | 是 | Finish操作的handle。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | Finish的参数集合。 **系统能力**:SystemCapability.Security.Huks |
+| callback | AsyncCallback\<[HksResult](#hksresult)> | 是 | 将Finish操作的结果添加到密钥管理系统的回调。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var properties = new Array();
+properties[0] = {
+ tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
+ value: huks.HksKeyAlg.HKS_ALG_DH
+};
+properties[1] = {
+ tag: huks.HksTag.HKS_TAG_PURPOSE,
+ value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
+};
+properties[2] = {
+ tag: huks.HksTag.HKS_TAG_KEY_SIZE
+ value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
+};
+var options = {
+ properties: properties
+};
+huks.finish(handle, options, function (err, data){});
+```
+
+## huks.finish
+
+finish(handle: number, options: HuksOptions) : Promise\
+
+finish操作接口,使用Promise方式异步返回结果。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ---------------------- | ---- | ------------------------------------- |
+| handle | number | 是 | Finish操作的handle。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | Finish操作的参数集合。 **系统能力**:SystemCapability.Security.Huks |
+| promise | Promise\<[HuksResult](#HuksResult)> | 是 | promise实例,用于获取异步返回结果。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var properties = new Array();
+properties[0] = {
+ tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
+ value: huks.HksKeyAlg.HKS_ALG_DH
+};
+properties[1] = {
+ tag: huks.HksTag.HKS_TAG_PURPOSE,
+ value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
+};
+properties[2] = {
+ tag: huks.HksTag.HKS_TAG_KEY_SIZE
+ value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
+};
+ value: huks.HuksKeyDigest.HUKS_DIGEST_NONE
+};
+var options = {
+ properties: properties
+};
+var result = huks.finish(handle, options)
+```
+
+
+## huks.abort
+
+abort(handle: number, options: HuksOptions, callback: AsyncCallback\) : void
+
+abort操作接口,使用callback回调异步返回结果 。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ---------------------- | ---- | ------------------------------------- |
+| handle | number | 是 | Abort操作的handle。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | Abort操作的参数集合。 **系统能力**:SystemCapability.Security.Huks |
+| callback | AsyncCallback\<[HksResult](#hksresult)> | 是 | 将Abort操作的结果添加到密钥管理系统的回调。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var properties = new Array();
+properties[0] = {
+ tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
+ value: huks.HksKeyAlg.HKS_ALG_DH
+};
+properties[1] = {
+ tag: huks.HksTag.HKS_TAG_PURPOSE,
+ value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
+};
+properties[2] = {
+ tag: huks.HksTag.HKS_TAG_KEY_SIZE
+ value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
+};
+var options = {
+ properties: properties
+};
+huks.abort(handle, options, function (err, data){});
+```
+
+## huks.abort
+
+abort(handle: number, options: HuksOptions) : Promise\;
+
+abort操作接口,使用Promise方式异步返回结果。
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ---------------------- | ---- | ------------------------------------- |
+| handle | number | 是 | Abort操作的handle。 **系统能力**:SystemCapability.Security.Huks |
+| options | [HuksOptions](#huksoptions) | 是 | Abort操作的参数集合。 **系统能力**:SystemCapability.Security.Huks |
+| promise | Promise\<[HuksResult](#huksresult)> | 是 | 将Abort操作的结果添加到密钥管理系统的回调。 **系统能力**:SystemCapability.Security.Huks |
+
+**示例:**
+
+```js
+var properties = new Array();
+properties[0] = {
+ tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
+ value: huks.HksKeyAlg.HKS_ALG_DH
+};
+properties[1] = {
+ tag: huks.HksTag.HKS_TAG_PURPOSE,
+ value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
+};
+properties[2] = {
+ tag: huks.HksTag.HKS_TAG_KEY_SIZE
+ value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
+};
+ value: huks.HuksKeyDigest.HUKS_DIGEST_NONE
+};
+var options = {
+ properties: properties
+};
+var result = huks.abort(handle, options);
+```
+
+## HuksParam
+
+调用接口使用的options中的properties数组中的param。
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------ | ----------------------------------- | ---- | ----------------------------------------------------------- |
+| tag | HuksTag | 是 | 标签 **系统能力**:SystemCapability.Security.Huks |
+| value | boolean\|number\|bigint\|Uint8Array | 是 | 标签对应值 **系统能力**:SystemCapability.Security.Huks |
+
+## HuksOptions
+
+调用接口使用的options。
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ---------- | ----------------- | ---- | ------------------------------------------------------------ |
+| properties | Array\ | 否 | 属性,存HuksParam的数组。 **系统能力**:SystemCapability.Security.Huks |
+| inData | Uint8Array | 否 | 输入数据。 **系统能力**:SystemCapability.Security.Huks |
+
+## HuksHandle
+
+huks Handle结构体。
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ---------- | ---------------- | ---- | -------- |
+| errorCode | number | 是 | 错误码 **系统能力**:SystemCapability.Security.Huks |
+| handle | number | 是 | handle值 **系统能力**:SystemCapability.Security.Huks |
+| token | Uint8Array | 否 | 预留字段 **系统能力**:SystemCapability.Security.Huks |
+
+
+## HuksResult
+
+调用接口返回的result。
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ---------- | ----------------- | ---- | --------------------------------------------------------- |
+| errorCode | number | 是 | 错误码 **系统能力**:SystemCapability.Security.Huks |
+| outData | Uint8Array | 否 | 输出数据 **系统能力**:SystemCapability.Security.Huks |
+| properties | Array\ | 否 | 属性 **系统能力**:SystemCapability.Security.Huks |
+| certChains | Array\ | 否 | 证书链 **系统能力**:SystemCapability.Security.Huks |
+
diff --git a/zh-cn/application-dev/reference/apis/js-apis-image.md b/zh-cn/application-dev/reference/apis/js-apis-image.md
new file mode 100644
index 0000000000000000000000000000000000000000..6795829a272ad08c3d072ed2db9dd6b4c2ca9c87
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-image.md
@@ -0,0 +1,1382 @@
+图片处理
+==========
+
+ 导入模块
+---------
+
+```
+import image from './@ohos.multimedia.image';
+```
+
+## image.createPixelMap
+createPixelMap(colors: ArrayBuffer, opts: InitializetionOptions): Promise\
+
+通过colors和opts创建pixelmap。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 名称 | 类型 | 必填 | 说明 |
+| ------ | ----------------------------------------------- | ---- | ------------------------------------------------------------ |
+| colors | ArrayBuffer | 是 | 颜色数组。 |
+| opts | [InitializetionOptions](#InitializationOptions) | 是 | 创建像素的属性,包括透明度,尺寸,缩略值,像素格式和是否可编辑。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ------------------ | -------------- |
+| Promise\ | 返回pixelmap。 |
+
+**示例:**
+
+```js
+image.createPixelMap(Color, opts)
+ .then((pixelmap) => {
+ expect(pixelmap !== null).assertTrue()
+ done()
+ })
+```
+
+## image.createPixelMap
+
+createPixelMap(colors: ArrayBuffer, opts: InitializetionOptions) callback: AsyncCallback\): void
+
+通过属性创建pixelmap。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 名称 | 类型 | 必填 | 说明 |
+| -------- | ----------------------------------------------- | ---- | -------------------- |
+| colors | ArrayBuffer | 是 | 颜色数组。 |
+| opts | [InitializetionOptions](#InitializationOptions) | 是 | 属性。 |
+| callback | AsyncCallback\ | 是 | 回调表示成功或失败。 |
+
+**示例:**
+
+```js
+image.createPixelMap(Color, opts, (pixelmap) => {
+ expect(pixelmap !== null).assertTrue()
+ done()
+ })
+```
+
+## PixelMap
+
+图像像素类,用于读取或写入图像数据以及获取图像信息。在调用PixelMap的方法前,需要先通过createPixelMap创建一个PixelMap实例。
+
+ ### 属性
+
+| 名称 | 类型 | 可读 | 可写 | 说明 |
+| ---------- | ------- | ---- | ---- | ------------------------------------------------------------ |
+| isEditable | boolean | 是 | 否 | 设定是否图像像素可被编辑。 **系统能力:** SystemCapability.Multimedia.Image |
+
+### readPixelsToBuffer
+
+```
+readPixelsToBuffer(dst: ArrayBuffer): Promise
+```
+
+读取图像像素数据,结果写入ArrayBuffer里,使用Promise形式返回。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------ | ----------- | ---- | ------------------------------------------------------------ |
+| dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| :------------- | :---------------------------------------------- |
+| Promise\ | Promise实例,用于获取结果,失败时返回错误信息。 |
+
+**示例:**
+
+```js
+pixelmap.readPixelsToBuffer(readBuffer).then(() => {
+ var bufferArr = new Uint8Array(readBuffer)
+ var res = true
+ for (var i = 0; i < bufferArr.length; i++) {
+ if (res) {
+ if (bufferArr[i] !== 0) {
+ res = false
+ console.info('TC_020 Success')
+ expect(true).assertTrue()
+ done()
+ break
+ }
+ }
+ }
+ if (res) {
+ console.info('TC_020 buffer is all empty')
+ expect(false).assertTrue()
+ done()
+ }
+ })
+```
+
+### readPixelsToBuffer
+
+readPixelsToBuffer(dst: ArrayBuffer, callback: AsyncCallback\): void
+
+读取图像像素数据,结果写入ArrayBuffer里,使用callback形式返回。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------------------- | ---- | ------------------------------------------------------------ |
+| dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。 |
+| callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。 |
+
+**示例:**
+
+```js
+pixelmap.readPixelsToBuffer(readBuffer, () => {
+ var bufferArr = new Uint8Array(readBuffer)
+ var res = true
+ for (var i = 0; i < bufferArr.length; i++) {
+ if (res) {
+ if (bufferArr[i] !== 0) {
+ res = false
+ console.info('TC_020-1 Success')
+ expect(true).assertTrue()
+ done()
+ break
+ }
+ }
+ }
+ if (res) {
+ console.info('TC_020-1 buffer is all empty')
+ expect(false).assertTrue()
+ done()
+ }
+ })
+```
+
+### readPixels
+
+readPixels(area: PositionArea): Promise\
+
+读取区域内的图片数据,使用Promise形式返回读取结果。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------ | ----------------------------- | ---- | ------------------------ |
+| area | [PositionArea](#PositionArea) | 是 | 区域大小,根据区域读取。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| :------------- | :-------------------------------------------------- |
+| Promise\ | Promise实例,用于获取读取结果,失败时返回错误信息。 |
+
+**示例:**
+
+```js
+pixelmap.readPixels(area).then((data) => {
+ if(data !== null){
+ var bufferArr = new Uint8Array(area.pixels);
+ var res = true;
+ for (var i = 0; i < bufferArr.length; i++) {
+ console.info('TC_021 buffer ' + bufferArr[i]);
+ if(res) {
+ if (bufferArr[i] == 0) {
+ res = false;
+ console.info('TC_021 Success');
+ expect(true).assertTrue();
+ done();
+ break;
+ }
+ }
+ }
+ if (res) {
+ console.info('TC_021 buffer is all empty');
+ expect(false).assertTrue()
+ done();
+ }
+ }
+ })
+```
+
+### readPixels
+
+readPixels(area: PositionArea, callback: AsyncCallback\): void
+
+读区域的像素。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ----------------------------- | ---- | ------------------------------ |
+| area | [PositionArea](#PositionArea) | 是 | 区域大小,根据区域读取。 |
+| callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。 |
+
+**示例:**
+
+```js
+pixelmap.readPixels(area,(data) => {
+ if(data !== null) {
+ var bufferArr = new Uint8Array(area.pixels);
+ var res = true;
+ for (var i = 0; i < bufferArr.length; i++) {
+ console.info('TC_021-1 buffer ' + bufferArr[i]);
+ if(res) {
+ if(bufferArr[i] == 0) {
+ res = false;
+ console.info('TC_021-1 Success');
+ expect(true).assertTrue();
+ done();
+ break;
+ }
+ }
+ }
+```
+
+### writePixels
+
+writePixels(area: PositionArea): Promise\
+
+先创建pixelmap,将pixelmap写入指定区域内,使用Promise形式返回写入结果。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------ | ----------------------------- | ---- | -------------------- |
+| area | [PositionArea](#PositionArea) | 是 | 区域,根据区域写入。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| :------------- | :-------------------------------------------------- |
+| Promise\ | Promise实例,用于获取写入结果,失败时返回错误信息。 |
+
+**示例:**
+
+```js
+pixelMap.writePixels(area).then(() => {
+ console.log("Succeeded in writing pixels.");
+}).catch((err) => {
+ console.error("Failed to write pixels.");
+});
+```
+
+### writePixels
+
+writePixels(area: PositionArea, callback: AsyncCallback\): void
+
+将指定的像素信息写入指定区域内。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| --------- | ----------------------------- | ---- | ------------------------------ |
+| area | [PositionArea](#PositionArea) | 是 | 区域,根据区域写入。 |
+| callback: | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。 |
+
+**示例:**
+
+```js
+pixelmap.writePixels(area, () => {
+ const readArea = {
+ pixels: new ArrayBuffer(20),
+ offset: 0,
+ stride: 8,
+ region: { size: { height: 1, width: 2 }, x: 0, y: 0 },
+ }
+ })
+```
+
+### writeBufferToPixels
+
+writeBufferToPixels(src: ArrayBuffer): Promise\
+
+将缓冲区的内容写入像素。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------ | ----------- | ---- | -------- |
+| src | ArrayBuffer | 是 | 缓冲区。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------------- | ----------------------------------------------- |
+| Promise\ | Promise实例,用于获取结果,失败时返回错误信息。 |
+
+**示例:**
+
+```js
+pixelMap.writeBufferToPixels(colorBuffer).then(() => {
+ console.log("Succeeded in writing data from a buffer to a PixelMap.");
+}).catch((err) => {
+ console.error("Failed to write data from a buffer to a PixelMap.");
+});
+```
+
+### writeBufferToPixels
+
+writeBufferToPixels(src: ArrayBuffer, callback: AsyncCallback\): void
+
+将缓冲区的内容写入像素。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------------------- | ---- | ------------------------------ |
+| src | ArrayBuffer | 是 | 图像像素数据。 |
+| callback | AsyncCallback\ | 是 | 获取回调,失败时返回错误信息。 |
+
+**示例:**
+
+```js
+pixelMap.writeBufferToPixels(colorBuffer, function(err) {
+ if (err) {
+ console.error("Failed to write data from a buffer to a PixelMap.");
+ return;
+ }
+ console.log("Succeeded in writing data from a buffer to a PixelMap.");
+});
+```
+
+### getImageInfo
+
+getImageInfo(): Promise\
+
+获取图像像素信息,使用Promise形式返回获取的图像像素信息。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**返回值:**
+
+| 类型 | 说明 |
+| ------------------- | ----------------------------------------------------------- |
+| Promise\ | Promise实例,用于异步获取图像像素信息,失败时返回错误信息。 |
+
+**示例:**
+
+```js
+pixelMap.getImageInfo().then(function(info) {
+ console.log("Succeeded in obtaining the image pixel map information.");
+}).catch((err) => {
+ console.error("Failed to obtain the image pixel map information.");
+});
+```
+
+### getImageInfo
+
+getImageInfo(callback: AsyncCallback\): void
+
+获取图像像素信息,使用callback形式返回获取的图像像素信息。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
+| callback | AsyncCallback\ | 是 | 获取图像像素信息回调,异步返回图像像素信息,失败时返回错误信息。 |
+
+**示例:**
+
+```js
+pixelmap.getImageInfo((imageInfo) => {
+ if (imageInfo !== null) {
+ console.info('TC_024-1 imageInfo is ready')
+ expect(imageInfo.size.height == 4).assertTrue()
+ expect(imageInfo.size.width == 6).assertTrue()
+ expect(imageInfo.pixelFormat == 1).assertTrue()
+ done()
+ } else {
+ console.info('TC_024-1 imageInfo is empty')
+ expect(false).assertTrue()
+ done()
+ }
+ })
+```
+
+### getBytesNumberPerRow
+
+getBytesNumberPerRow(): Promise\
+
+获取图像像素每行字节数。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**返回值:**
+
+| 类型 | 说明 |
+| ---------------- | --------------------------------------------- |
+| Promise\ | Promise实例,用于异步获取图像像素的行字节数。 |
+
+**示例:**
+
+```js
+pixelmap.getBytesNumberPerRow().then((num) => {
+ console.info('TC_025 num is ' + num)
+ expect(num == expectNum).assertTrue()
+ done()
+ })
+```
+
+### getBytesNumberPerRow
+
+getBytesNumberPerRow(callback: AsyncCallback\): void
+
+获取图像像素每行字节数。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ---------------------- | ---- | ------------------ |
+| callback | AsyncCallback\ | 是 | 通过回调返回结果。 |
+
+**示例:**
+
+```js
+pixelmap.getBytesNumberPerRow( num => {
+ console.info('TC_025-1 num is ' + num);
+ expect(num == expectNum).assertTrue();
+ done();
+ })
+```
+
+### getPixelBytesNumber
+
+getPixelBytesNumber(): Promise\
+
+获取图像像素的总字节数。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**返回值:**
+
+| 类型 | 说明 |
+| ---------------- | --------------------------------------------- |
+| Promise\ | Promise实例,用于异步获取图像像素的总字节数。 |
+
+**示例:**
+
+```js
+pixelmap.getPixelBytesNumber().then((num) => {
+ console.info('TC_026 num is ' + num)
+ expect(num == expectNum).assertTrue()
+ done()
+ })
+```
+
+### getPixelBytesNumber
+
+getPixelBytesNumber(callback: AsyncCallback\): void
+
+获取图像像素的总字节数。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ---------------------- | ---- | ------------------ |
+| callback | AsyncCallback\ | 是 | 通过回调返回结果。 |
+
+**示例:**
+
+```js
+pixelmap.getPixelBytesNumber((num) => {
+ console.info('TC_026-1 num is ' + num)
+ expect(num == expectNum).assertTrue()
+ done()
+ })
+```
+
+### release
+
+release(): void
+
+释放pixelmap对象,使用Promise形式返回释放结果。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**示例:**
+
+```js
+pixelmap.release()
+ expect(true).assertTrue()
+ done()
+```
+
+## image.createImageSource
+
+createImageSource(uri: string): ImageSource
+
+创建图片源。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------ | ------ | ---- | ---------- |
+| uri | string | 是 | 图片路径。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ----------- | ------------ |
+| ImageSource | 返回图片源。 |
+
+**示例:**
+
+```js
+const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg')
+```
+
+## image.createImageSource
+
+createImageSource(fd: number): ImageSource
+
+创建图片源。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------ | ------ | ---- | ------------------ |
+| fd | number | 是 | 基于fd创建图片源。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ----------- | ------------ |
+| ImageSource | 返回图片源。 |
+
+**示例:**
+
+```js
+const imageSourceApi = image.createImageSource(0)
+```
+
+## image.createImageSource
+
+createImageSource(data: ArrayBuffer): ImageSource
+
+创建图片源。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------ | ----------- | ---- | ------ |
+| data | ArrayBuffer | 是 | 数组。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ----------- | ------------ |
+| ImageSource | 返回图片源。 |
+
+**示例:**
+
+```js
+const data = new ArrayBuffer(96);
+const imageSourceApi = image.createImageSource(data);
+```
+
+## image.createIncrementalSource
+
+createIncrementalSource(data: ArrayBuffer): ImageSource
+
+创建增量图片源。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------ | ----------- | ---- | ---- |
+| data | ArrayBuffer | 是 | 数组 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ----------- | ------------ |
+| ImageSource | 返回图片源。 |
+
+**示例:**
+
+```js
+const data = new ArrayBuffer(96);
+const imageSourceApi = image.createIncrementalSource(data);
+```
+
+## ImageSource
+
+图片源类,用于获取图片相关信息。在调用ImageSource的方法前,需要先通过createImageSource构建一个ImageSource实例。
+
+### 属性
+
+| 名称 | 类型 | 可读 | 可写 | 说明 |
+| ---------------- | -------------- | ---- | ---- | ------------------------------------------------------------ |
+| supportedFormats | Array\ | 是 | 否 | 支持的图片格式,包括:png,jpeg,wbmp,bmp,gif,webp,heif等。 **系统能力:** SystemCapability.Multimedia.Image |
+
+### getImageInfo
+
+getImageInfo(index: number, callback: AsyncCallback\): void
+
+获取指定序号的图片信息,使用callback形式返回图片信息。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------------------------------------- | ---- | ----------------------------------------------- |
+| index | number | 是 | 图片序号,创建图片源时的序号,不选择时默认为0。 |
+| callback | AsyncCallback<[ImageInfo](#ImageInfo)> | 是 | 获取图片信息回调,异步返回图片信息对象。 |
+
+**示例:**
+
+```js
+it('TC_046', 0, async function (done) {
+ const imageSourceApi = image.createImageSource('/sdcard/test.jpg');
+ if (imageSourceApi == null) {
+ console.info('TC_046 create image source failed');
+ expect(false).assertTrue();
+ done();
+ } else {
+ imageSourceApi.getImageInfo(0,(error, imageInfo) => {
+ console.info('TC_046 imageInfo');
+ expect(imageInfo !== null).assertTrue();
+ done();
+ })
+ }
+ })
+```
+
+### getImageInfo
+
+getImageInfo(callback: AsyncCallback\): void
+
+获取指定序号的图片信息,使用callback形式返回图片信息。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 名称 | 类型 | 必填 | 说明 |
+| -------- | -------------------------------------- | ---- | ---------------------------------------- |
+| callback | AsyncCallback<[ImageInfo](#ImageInfo)> | 是 | 获取图片信息回调,异步返回图片信息对象。 |
+
+**示例:**
+
+```js
+imageSourceApi.getImageInfo(imageInfo => {
+ console.info('TC_045 imageInfo');
+ expect(imageInfo !== null).assertTrue();
+ done();
+ })
+```
+
+### getImageInfo
+
+getImageInfo(index?: number): Promise\
+
+获取图片信息,使用Promise形式返回图片信息。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 名称 | 类型 | 必填 | 说明 |
+| ----- | ------ | ---- | ----------------------------------------------- |
+| index | number | 否 | 图片序号,创建图片源时的序号,不选择时默认为0。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| --------------------------------- | ---------------------- |
+| Promise\<[ImageInfo](#ImageInfo)> | 返回获取到的图片信息。 |
+
+**示例:**
+
+```js
+imageSourceApi.getImageInfo(0)
+ .then(imageInfo => {
+ console.info('TC_047 imageInfo');
+ expect(imageInfo !== null).assertTrue();
+ done();
+ })
+```
+
+### getImageProperty
+
+getImageProperty(key:string, options?: GetImagePropertyOptions): Promise\
+
+获取图片中给定索引处图像的指定属性键的值。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+ **参数:**
+
+| 名称 | 类型 | 必填 | 说明 |
+| ------- | --------------------------------------------------- | ---- | ------------------------------------ |
+| key | string | 是 | 图片属性名。 |
+| options | [GetImagePropertyOptions](#GetImagePropertyOptions) | 否 | 图片属性,包括图片序号与默认属性值。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ---------------- | ------------------------------------------------------------ |
+| Promise\ | Promise实例,用于异步获取图片属性值,如获取失败则返回属性默认值。 |
+
+**示例:**
+
+```js
+const w = imageSourceApi.getImageProperty("ImageWidth")
+```
+
+### getImageProperty
+
+getImageProperty(key:string, callback: AsyncCallback\): void
+
+获取图片中给定索引处图像的指定属性键的值,使用callback形式返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+ **参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ---------------------- | ---- | ------------------------------------------------------------ |
+| key | string | 是 | 图片属性名。 |
+| callback | AsyncCallback\ | 是 | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。 |
+
+**示例:**
+
+```js
+const w = imageSourceApi.getImageProperty("ImageWidth",w=>{})
+```
+
+### getImageProperty
+
+getImageProperty(key:string, options: GetImagePropertyOptions, callback: AsyncCallback\): void
+
+获取图片指定属性键的值,callback形式返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | --------------------------------------------------- | ---- | ------------------------------------------------------------ |
+| key | string | 是 | 图片属性名。 |
+| options | [GetImagePropertyOptions](#GetImagePropertyOptions) | 是 | 图片属性,包括图片序号与默认属性值。 |
+| callback | AsyncCallback\ | 是 | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。 |
+
+**示例:**
+
+```js
+ imageSourceApi.getImageProperty("ImageWidth",PropertyOptions,(w)=>{})
+```
+
+### modifyImageProperty
+
+modifyImageProperty(key:string, value:string, options?: GetImagePropertyOptions): Promise\
+
+修改属性的值。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------- | --------------------------------------------------- | ---- | ------------------------------------ |
+| key | string | 是 | 图片属性名。 |
+| value | string | 是 | 属性值。 |
+| options | [GetImagePropertyOptions](#GetImagePropertyOptions) | 是 | 图片属性,包括图片序号与默认属性值。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------------- | --------------------------- |
+| Promise\ | Promise实例,异步返回结果。 |
+
+**示例:**
+
+**示例:**
+
+```js
+imageSourceApi.modifyImageProperty("ImageWidth", "abc")
+ .then(() => {
+ const w = imageSourceApi.getImageProperty("ImageWidth")
+ console.info('w', w);
+ expect(w == 'abc').assertTrue();
+ done();
+ })
+```
+
+### modifyImageProperty
+
+modifyImageProperty(key:string, value:string, callback: AsyncCallback\): void
+
+修改属性的值,callback返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------------------- | ---- | ------------------------------ |
+| key | string | 是 | 图片属性名。 |
+| value | string | 是 | 属性值。 |
+| callback | AsyncCallback\ | 是 | 修改属性值,callback返回结果。 |
+
+**示例:**
+
+```js
+imageSourceApi.modifyImageProperty("ImageWidth", "abc",() => {})
+```
+
+### modifyImageProperty
+
+modifyImageProperty(key:string, value:string, options: GetImagePropertyOptions,callback: AsyncCallback\): void
+
+修改属性的值,callback返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | --------------------------------------------------- | ---- | ------------------------------------ |
+| key | string | 是 | 图片属性名。 |
+| value | string | 是 | 属性值。 |
+| options | [GetImagePropertyOptions](#GetImagePropertyOptions) | 是 | 图片属性,包括图片序号与默认属性值。 |
+| callback | AsyncCallback\ | 是 | 修改属性值,callback返回结果。 |
+
+**示例:**
+
+```js
+let PropertyOptions = {
+ index:0,
+ defaultValue:'a'
+imageSourceApi.modifyImageProperty("ImageWidth", "abc",PropertyOptions,() => {
+
+ };
+```
+
+### createPixelMap
+
+createPixelMap(index: number, options: DecodingOptions, callback: AsyncCallback\): void
+
+通过图片解码参数创建pixelmap对象,使用callback形式返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 名称 | 类型 | 必填 | 说明 |
+| ------------- | ------------------------------------ | ---- | -------------------- |
+| options | [DecodingOptions](#DecodingOptions) | 是 | 解码参数。 |
+| index | number | 是 | 图片索引。 |
+| AsyncCallback | AsyncCallback<[PixelMap](#PixelMap)> | 是 | 回调表示成功或失败。 |
+
+**示例:**
+
+```js
+imageSourceApi.createPixelMap().then(pixelmap => {
+ console.info('TC_050-11 createPixelMap ');
+ expect(pixelmap !== null ).assertTrue();
+ done();
+ })
+```
+
+### createPixelMap
+
+createPixelMap(options: DecodingOptions, callback: AsyncCallback\): void
+
+通过图片解码参数创建pixelmap对象。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 名称 | 类型 | 必填 | 说明 |
+| -------- | ------------------------------------ | ---- | -------------------- |
+| options | [DecodingOptions](#DecodingOptions) | 是 | 解码参数。 |
+| callback | AsyncCallback<[PixelMap](#PixelMap)> | 是 | 回调表示成功或失败。 |
+
+**示例:**
+
+```js
+let decodingOptions = {
+ sampleSize:1,
+ editable: true,
+ desiredSize:{ width:1, height:2},
+ rotateDegrees:10,
+ desiredPixelFormat:1,
+ desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 },
+ };
+ imageSourceApi.createPixelMap(0,decodingOptions, pixelmap => {
+ console.info('TC_050-1 createPixelMap ');
+ expect(pixelmap !== null ).assertTrue();
+ done();
+ })
+```
+
+### createPixelMap
+
+createPixelMap(opts: DecodingOptions, callback: AsyncCallback\): void
+
+通过图片解码参数创建pixelmap对象。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 名称 | 类型 | 必填 | 说明 |
+| -------- | ------------------------------------ | ---- | -------------------- |
+| opts | [DecodingOptions](#DecodingOptions) | 是 | 解码参数。 |
+| callback | AsyncCallback<[PixelMap](#PixelMap)> | 是 | 回调表示成功或失败。 |
+
+**示例:**
+
+```js
+let decodingOptions = {
+ sampleSize:1,
+ editable: true,
+ desiredSize:{ width:1, height:2},
+ rotateDegrees:10,
+ desiredPixelFormat:1,
+ desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 },
+ index:1
+ };
+ imageSourceApi.createPixelMap(decodingOptions, pixelmap => {
+ console.info('TC_050-1 createPixelMap ');
+ expect(pixelmap !== null ).assertTrue();
+ done();
+ })
+```
+
+### updateData
+
+updateData(data: Array\, isFinal: boolean, offset: number, length: number, callback: AsyncCallback\): void
+
+更新增量数据。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 名称 | 类型 | 必填 | 说明 |
+| -------- | ----------------------- | ---- | -------------------- |
+| data | Array\ | 是 | 增量数据。 |
+| isFinal | boolean | 是 | 是否更新完。 |
+| offset | number | 是 | 偏移量。 |
+| length | number | 是 | 数组长。 |
+| callback | AsyncCallback\ | 是 | 回调表示成功或失败。 |
+
+**示例:**
+
+```js
+imageSourceIncrementalSApi.updateData(array, false, 0, 10,(error,data )=> {
+ if(data !== undefined){
+ expect(data).assertTrue();
+ console.info('TC_053-1 success');
+ done();
+ }
+```
+
+### updateData
+
+updateData(data: Array\, isFinal: boolean, offset?: number, length?: number): Promise\
+
+更新增量数据。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 名称 | 类型 | 必填 | 说明 |
+| ------- | -------------- | ---- | ------------ |
+| data | Array\ | 是 | 增量数据。 |
+| isFinal | boolean | 是 | 是否更新完。 |
+| offset | boolean | 否 | 偏移量。 |
+| length | number | 否 | 数组长。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ----------------- | --------------------------------- |
+| Promise\ | Promise实例,异步返回成功或失败。 |
+
+**示例:**
+
+```js
+ imageSourceIncrementalSApi.updateData(array, false, 0, 10).then(data => {
+ expect(data).assertTrue();
+ console.info('TC_053 success');
+ done();
+ })
+```
+
+### updateData
+
+updateData(data: Array\, isFinal: boolean, callback: AsyncCallback\): void
+
+更新增量数据。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 名称 | 类型 | 必填 | 说明 |
+| -------- | ----------------------- | ---- | -------------------- |
+| data | Array\ | 是 | 增量数据。 |
+| isFinal | boolean | 是 | 是否更新完。 |
+| callback | AsyncCallback\ | 是 | 回调表示成功或失败。 |
+
+**示例:**
+
+```js
+imageSourceIncrementalSApi.updateData(array, false,(error,data) => {
+ if(data !== undefined){
+ expect(data).assertTrue();
+ console.info('TC_053-2 success');
+ done();
+ }
+```
+
+### release
+
+release(callback: AsyncCallback\): void
+
+释放图片源。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 名称 | 类型 | 必填 | 说明 |
+| -------- | -------------------- | ---- | ---------------------------------- |
+| callback | AsyncCallback\ | 是 | 资源释放回调,失败时返回错误信息。 |
+
+**示例:**
+
+```js
+imageSourceApi.release(() => {
+ console.info('TC_044-1 Success');
+ expect(true).assertTrue();
+ done();
+ })
+ }
+```
+
+### release
+
+release(): Promise\
+
+释放图片源。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**返回值:**
+
+| 类型 | 说明 |
+| -------------- | --------------------------- |
+| Promise\ | Promise实例,异步返回结果。 |
+
+**示例:**
+
+```js
+ imageSourceApi.release(() => {
+ console.info('TC_044-1 Success');
+ expect(true).assertTrue();
+ done();
+ })
+```
+
+## image.createImagePacker
+
+createImagePacker(): ImagePacker
+
+创建imagepacker实例。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**返回值:**
+
+| 类型 | 说明 |
+| ----------- | ----------------- |
+| ImagePacker | 返回ImagePacker。 |
+
+**示例:**
+
+```js
+const imagePackerApi = image.createImagePacker();
+```
+
+## ImagePacker
+
+图片打包器类,用于图片压缩和打包。在调用ImagePacker的方法前,需要先通过createImagePacker构建一个ImagePacker实例。
+
+### 属性
+
+| 名称 | 类型 | 可读 | 可写 | 说明 |
+| ---------------- | -------------- | ---- | ---- | ------------------------------------------------------------ |
+| supportedFormats | Array\ | 是 | 否 | 图片打包支持的格式,jpg。 **系统能力:** SystemCapability.Multimedia.Image |
+
+### packing
+
+packing(source: ImageSource, option: PackingOption, callback: AsyncCallback>): void
+
+图片压缩或重新打包,使用callback形式返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ------------------------------- | ---- | ---------------------------------- |
+| source | [ImageSource](#ImageSource) | 是 | 打包的图片源。 |
+| option | [PackingOption](#PackingOption) | 是 | 设置打包参数。 |
+| callback | AsyncCallback> | 是 | 获取图片打包回调,返回打包后数据。 |
+
+**示例:**
+
+```js
+let packOpts = { format:["image/jpeg"], quality:98 }
+ imagePackerApi.packing(imageSourceApi, packOpts, data => {
+ console.info('TC_062-1 finished');
+ expect(data !== null).assertTrue();
+ done();
+ })
+```
+
+### packing
+
+packing(source: ImageSource, option: PackingOption): Promise>
+
+图片压缩或重新打包,使用promise形式返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------ | ------------------------------- | ---- | -------------- |
+| source | [ImageSource](#ImageSource) | 是 | 打包的图片源。 |
+| option | [PackingOption](#PackingOption) | 是 | 设置打包参数。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| :---------------------- | :-------------------------------------------- |
+| Promise> | Promise实例,用于异步获取压缩或打包后的数据。 |
+
+**示例:**
+
+```js
+let packOpts = { format:["image/jpeg"], quality:98 }
+ imagePackerApi.packing(imageSourceApi, packOpts)
+ .then( data => {
+ console.info('TC_062 finished');
+ expect(data !== null).assertTrue();
+ done();
+ })
+```
+
+### release
+
+release(callback: AsyncCallback\): void
+
+释放packer对象。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------------------- | ---- | ---------------------- |
+| callback | AsyncCallback\ | 是 | 回调表示成功还是失败。 |
+
+**示例:**
+
+```js
+imagePackerApi.release(()=>{
+ console.info('TC_063-1 release');
+ expect(true).assertTrue();
+ done();
+```
+
+### release
+
+release(): Promise\
+
+释放packer对象。
+
+**系统能力:** SystemCapability.Multimedia.Image
+
+**返回值:**
+
+| 类型 | 说明 |
+| :------------- | :------------------------------ |
+| Promise\ | Promise实例,用于异步返回结果。 |
+
+**示例:**
+
+```js
+imagePackerApi.release();
+ console.info('TC_063 release');
+ expect(true).assertTrue();
+ done();
+```
+
+## PositionArea
+
+| 名称 | 类型 | 可读 | 可写 | 说明 |
+| ------ | ----------------- | ---- | ---- | ------------------------------------------------------------ |
+| pixels | ArrayBuffer | 是 | 否 | 像素。 **系统能力:** SystemCapability.Multimedia.Image |
+| offset | number | 是 | 否 | 偏移量。 **系统能力:** SystemCapability.Multimedia.Image |
+| stride | number | 是 | 否 | 像素间距。 **系统能力:** SystemCapability.Multimedia.Image |
+| region | [Region](#Region) | 是 | 否 | 区域,按照区域读写。 **系统能力:** SystemCapability.Multimedia.Image |
+
+## **ImageInfo **
+
+| 名称 | 类型 | 可读 | 可写 | 说明 |
+| ----------- | --------------------------------- | ---- | ---- | ------------------------------------------------------------ |
+| size | [Size](#Size) | 是 | 是 | 图片大小。 **系统能力:** SystemCapability.Multimedia.Image |
+| pixelFormat | [PixelMapFormat](#PixelMapFormat) | 是 | 是 | 图片格式。 **系统能力:** SystemCapability.Multimedia.Image |
+| colorSpace | [ColorSpace](#ColorSpace) | 是 | 是 | 色域。 **系统能力:** SystemCapability.Multimedia.Image |
+| alphaType | [AlphaType](#AlphaType) | 是 | 是 | 透明度。 **系统能力:** SystemCapability.Multimedia.Image |
+
+## Size
+
+| 名称 | 类型 | 可读 | 可写 | 说明 |
+| ------ | ------ | ---- | ---- | ------------------------------------------------------------ |
+| height | number | 是 | 是 | 输出图片的高。 **系统能力:** SystemCapability.Multimedia.Image |
+| width | number | 是 | 是 | 输出图片的宽。 **系统能力:** SystemCapability.Multimedia.Image |
+
+## PixelMapFormat
+
+枚举,像素格式。
+
+| 名称 | 默认值 | 描述 |
+| --------- | ------ | ------------------------------------------------------------ |
+| UNKNOWN | 0 | 未知格式。 **系统能力:** SystemCapability.Multimedia.Image |
+| ARGB_8888 | 1 | 格式为ARGB_8888。 **系统能力:** SystemCapability.Multimedia.Image |
+| RGB_565 | 2 | 格式为RGB_565。 **系统能力:** SystemCapability.Multimedia.Image |
+
+## ColorSpace
+
+枚举,色块。
+
+| 名称 | 默认值 | 描述 |
+| -------------------- | ------ | ------------------------------------------------------------ |
+| UNKNOWN | 0 | 色块基于unknown color space。 **系统能力:** SystemCapability.Multimedia.Image |
+| DISPLAY_P3 | 1 | 色块基于 SMPTE RP 431-2-2007 and IEC 61966-2.1:199。 **系统能力:** SystemCapability.Multimedia.Image |
+| SRGB | 2 | 色块基于IEC 61966-2.1:1999。 **系统能力:** SystemCapability.Multimedia.Image |
+| LINEAR_SRGB | 3 | 色块基于the IEC 61966-2.1:1999。 **系统能力:** SystemCapability.Multimedia.Image |
+| EXTENDED_SRGB | 4 | 色块基于IEC 61966-2-2:2003。 **系统能力:** SystemCapability.Multimedia.Image |
+| LINEAR_EXTENDED_SRGB | 5 | 色块基于IEC 61966-2-2:2003。 **系统能力:** SystemCapability.Multimedia.Image |
+| GENERIC_XYZ | 6 | 色块基于D50。 **系统能力:** SystemCapability.Multimedia.Image |
+| GENERIC_LAB | 7 | 色块基于 CIE XYZ D50。 **系统能力:** SystemCapability.Multimedia.Image |
+| ACES | 8 | 色块基于SMPTE ST 2065-1:2012。 **系统能力:** SystemCapability.Multimedia.Image |
+| ACES_CG | 9 | 色块基于Academy S-2014-004。 **系统能力:** SystemCapability.Multimedia.Image |
+| ADOBE_RGB_1998 | 10 | 色块基于 Adobe RGB。 **系统能力:** SystemCapability.Multimedia.Image |
+| DCI_P3 | 11 | 色块基于SMPTE RP 431-2-2007。 **系统能力:** SystemCapability.Multimedia.Image |
+| ITU_709 | 12 | 色块基于Rec.ITU-R BT.709-5。 **系统能力:** SystemCapability.Multimedia.Image |
+| ITU_2020 | 13 | 色块基于Rec.ITU-R BT.2020-1。 **系统能力:** SystemCapability.Multimedia.Image |
+| ROMM_RGB | 14 | 色块基于ISO 22028-2:2013。 **系统能力:** SystemCapability.Multimedia.Image |
+| NTSC_1953 | 15 | 色块基于NTSC 1953 standard。 **系统能力:** SystemCapability.Multimedia.Image |
+| SMPTE_C | 16 | 色块基于 SMPTE C。 **系统能力:** SystemCapability.Multimedia.Image |
+
+## AlphaType
+
+枚举,透明度。
+
+| 名称 | 默认值 | 描述 |
+| -------- | ------ | ------------------------------------------------------------ |
+| UNKNOWN | 0 | 未知透明度。 **系统能力:** SystemCapability.Multimedia.Image |
+| OPAQUE | 1 | 没有alpha或图片全透明。 **系统能力:** SystemCapability.Multimedia.Image |
+| PREMUL | 2 | RGB前乘alpha。 **系统能力:** SystemCapability.Multimedia.Image |
+| UNPREMUL | 3 | RGB不前乘alpha。 **系统能力:** SystemCapability.Multimedia.Image |
+
+## ScaleMode
+
+枚举,缩略值。
+
+| 名称 | 默认值 | 描述 |
+| --------------- | ------ | ------------------------------------------------------------ |
+| CENTER_CROP | 1 | 缩放图像以填充目标图像区域并居中裁剪区域外的效果。 **系统能力:** SystemCapability.Multimedia.Image |
+| FIT_TARGET_SIZE | 2 | 图像适合目标尺寸的效果。 **系统能力:** SystemCapability.Multimedia.Image |
+
+## InitializationOptions
+
+| 名称 | 类型 | 可读 | 可写 | 说明 |
+| ----------- | --------------------------------- | ---- | ---- | ------------------------------------------------------------ |
+| alphaType | [AlphaType](#AlphaType) | 是 | 是 | 透明度。 **系统能力:** SystemCapability.Multimedia.Image |
+| editable | boolean | 是 | 是 | 是否可编辑。 **系统能力:** SystemCapability.Multimedia.Image |
+| pixelFormat | [PixelMapFormat](#PixelMapFormat) | 是 | 是 | 像素格式。 **系统能力:** SystemCapability.Multimedia.Image |
+| scalemode | [ScaleMode](#ScaleMode) | 是 | 是 | 缩略值。 **系统能力:** SystemCapability.Multimedia.Image |
+| size | [Size](#Size) | 是 | 是 | 创建图片大小。 **系统能力:** SystemCapability.Multimedia.Image |
+
+## DecodingOptions
+
+解码设置选项。
+
+| 名称 | 类型 | 可读 | 可写 | 说明 |
+| ------------------ | --------------------------------- | ---- | ---- | ------------------------------------------------------------ |
+| sampleSize | number | 是 | 是 | 缩略图采样大小。 **系统能力:** SystemCapability.Multimedia.Image |
+| rotateDegrees | number | 是 | 是 | 旋转角度。 **系统能力:** SystemCapability.Multimedia.Image |
+| editable | boolean | 是 | 是 | 是否可编辑。 **系统能力:** SystemCapability.Multimedia.Image |
+| desiredSize | [Size](#Size) | 是 | 是 | 期望输出大小。 **系统能力:** SystemCapability.Multimedia.Image |
+| desiredRegion | [Region](#Region) | 是 | 是 | 解码区域。 **系统能力:** SystemCapability.Multimedia.Image |
+| desiredPixelFormat | [PixelMapFormat](#PixelMapFormat) | 是 | 是 | 解码的像素格式。 **系统能力:** SystemCapability.Multimedia.Image |
+| reusedPixelMap | [PixelMap](#PixelMap) | 是 | 是 | 将当前buffer地址给新创建的pixelmap。 **系统能力:** SystemCapability.Multimedia.Image |
+
+## Region
+
+| 名称 | 类型 | 可读 | 可写 | 说明 |
+| ---- | ------------- | ---- | ---- | ------------------------------------------------------------ |
+| size | [Size](#Size) | 是 | 是 | 区域大小。 **系统能力:** SystemCapability.Multimedia.Image |
+| x | number | 是 | 是 | 区域坐标。 **系统能力:** SystemCapability.Multimedia.Image |
+| y | number | 是 | 是 | 区域坐标。 **系统能力:** SystemCapability.Multimedia.Image |
+
+## PackingOption
+
+| 名称 | 类型 | 可读 | 可写 | 说明 |
+| ------- | ------ | ---- | ---- | ------------------------------------------------------------ |
+| format | string | 是 | 是 | 目标格式。 **系统能力:** SystemCapability.Multimedia.Image |
+| quality | number | 是 | 是 | 目标图片质量。 **系统能力:** SystemCapability.Multimedia.Image |
+
+## GetImagePropertyOptions
+
+| 名称 | 类型 | 可读 | 可写 | 说明 |
+| ------------ | ------ | ---- | ---- | ---------- |
+| index | number | 是 | 是 | 图片序号。 **系统能力:** SystemCapability.Multimedia.Image |
+| defaultValue | string | 是 | 是 | 默认属性值 **系统能力:** SystemCapability.Multimedia.Image |
+
diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md
index 90b9f701b255b3430356412cbe54cd830c4b5114..74a1d0b8f40b304115e2cf22f1de6520f76c4a9a 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-media.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-media.md
@@ -1757,9 +1757,13 @@ audioRecorder.prepare(); // prepare不设置参数,触发'error'
表示音频编码格式的枚举。
-| 名称 | 默认值 | 说明 |
-| ------ | ------ | ------------------------------------------------------------ |
-| AAC_LC | 3 | AAC-LC(Advanced Audio Coding Low Complexity)编码格式。 |
+| 名称 | 默认值 | 说明 |
+| ------- | ------ | ------------------------------------------------------------ |
+| DEFAULT | 0 | Default audio encoding format is AMR_NB。本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。 **系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
+| AMR_NB | 1 | AMR-NB(Adaptive Multi Rate-Narrow Band Speech Codec) 编码格式。本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。 **系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
+| AMR_WB | 2 | AMR-WB(Adaptive Multi Rate-Wide Band Speech Codec) 编码格式。本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。 **系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
+| AAC_LC | 3 | AAC-LC(Advanced Audio Coding Low Complexity)编码格式。 **系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
+| HE_AAC | 4 | HE_AAC(High-Efficiency Advanced Audio Coding)编码格式。本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。 **系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
## AudioOutputFormat
@@ -1768,8 +1772,11 @@ audioRecorder.prepare(); // prepare不设置参数,触发'error'
| 名称 | 默认值 | 说明 |
| -------- | ------ | ------------------------------------------------------------ |
-| MPEG_4 | 2 | 封装为MPEG-4格式。 |
-| AAC_ADTS | 6 | 封装为ADTS(Audio Data Transport Stream)格式,是AAC音频的传输流格式。 |
+| DEFAULT | 0 | 默认封装格式为MPEG-4。本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。 **系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
+| MPEG_4 | 2 | 封装为MPEG-4格式。 **系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
+| AMR_NB | 3 | 封装为AMR_NB格式。本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。 **系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
+| AMR_WB | 4 | 封装为AMR_WB格式。本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。 **系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
+| AAC_ADTS | 6 | 封装为ADTS(Audio Data Transport Stream)格式,是AAC音频的传输流格式。 **系统能力:**SystemCapability.Multimedia.Media.AudioRecorder |
## VideoRecorder8+
diff --git a/zh-cn/application-dev/reference/apis/js-apis-observer.md b/zh-cn/application-dev/reference/apis/js-apis-observer.md
index 6babbe512afb4d6a4518b0ced6d0a08adb6302bf..e020047aa5e967808761fede6d7c06e4e407b2d8 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-observer.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-observer.md
@@ -177,3 +177,89 @@ observer.off('signalInfoChange', callback);
observer.off('signalInfoChange');
```
+
+## observer.on('callStateChange')
+
+on(type: 'callStateChange', callback: Callback\<{ state: [CallState](js-apis-call.md#CallState), number: string }\>): void;
+
+订阅通话状态变化事件,使用callback方式作为异步方法。
+
+**需要权限**:ohos.permission.READ_CALL_LOG
+
+**系统能力**:SystemCapability.Telephony.StateRegistry
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
+| type | string | 是 | 通话状态变化事件 |
+| callback | Callback\<{ state: [CallState](js-apis-call.md#CallState), number: string }\> | 是 | 回调函数,参考call的[CallState](js-apis-call.md#CallState) number:电话号码 |
+
+**示例:**
+
+```
+observer.on('callStateChange', value =>{
+ console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
+});
+```
+
+
+## observer.on('callStateChange')
+
+on(type: 'callStateChange', options: { slotId: number }, callback: Callback<{ state: [CallState](js-apis-call.md#CallState), number: string }>): void;
+
+订阅通话状态变化事件,使用callback方式作为异步方法。
+
+**需要权限**:ohos.permission.READ_CALL_LOG
+
+**系统能力**:SystemCapability.Telephony.StateRegistry
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
+| type | string | 是 | 通话状态变化事件 |
+| slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
+| callback | Callback\<{ state: [CallState](js-apis-call.md#CallState), number: string }\> | 是 | 回调函数,参考call的[CallState](js-apis-call.md#CallState) number:电话号码 |
+
+**示例:**
+
+```
+observer.on('callStateChange', {slotId: 0}, value =>{
+ console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
+});
+```
+
+
+## observer.off('callStateChange')
+
+off(type: 'callStateChange', callback?: Callback<{ state: [CallState](js-apis-call.md#CallState), number: string }>): void;
+
+取消订阅通话状态变化事件,使用callback方式作为异步方法。
+
+**需要权限**:ohos.permission.READ_CALL_LOG
+
+>**说明:**
+>
+>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
+
+**系统能力**:SystemCapability.Telephony.StateRegistry
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
+| type | string | 是 | 通话状态变化事件 |
+| callback | Callback\<{ state: [CallState](js-apis-call.md#CallState), number: string }\> | 否 | 回调函数,参考call的[CallState](js-apis-call.md#CallState) number:电话号码 |
+
+**示例:**
+
+```
+let callback = value => {
+ console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
+}
+observer.on('callStateChange', callback);
+// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
+observer.off('callStateChange', callback);
+observer.off('callStateChange');
+```
diff --git a/zh-cn/application-dev/reference/apis/js-apis-permissionrequestresult.md b/zh-cn/application-dev/reference/apis/js-apis-permissionrequestresult.md
new file mode 100644
index 0000000000000000000000000000000000000000..65317e07f3e3b68c887fec2687701407ddd19386
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-permissionrequestresult.md
@@ -0,0 +1,18 @@
+# PermissionRequestResult
+
+- [属性](#属性)
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API 9开始支持。
+
+
+权限请求结果。
+
+
+## 属性
+
+ | 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| -------- | -------- | -------- | -------- | -------- |
+| permissions | Array<string> | 是 | 否 | 用户传入的权限。 |
+| authResults | Array<number> | 是 | 否 | 相应请求权限的结果。0表示授权成功,-1表示失败。 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-processrunninginfo.md b/zh-cn/application-dev/reference/apis/js-apis-processrunninginfo.md
new file mode 100644
index 0000000000000000000000000000000000000000..d22b2afe122785331b69c77ac474f52512dda061
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-processrunninginfo.md
@@ -0,0 +1,36 @@
+# ProcessRunningInfo
+
+- [使用说明](#使用说明)
+- [属性](#属性)
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API 8开始支持。
+
+
+进程运行信息。
+
+
+## 使用说明
+
+
+通过appManager来获取。
+
+
+
+```
+import appManager from '@ohos.application.appManager';
+appManager.getProcessRunningInfos((error,data) => {
+ console.log("getProcessRunningInfos error: " + error.code + " data: " + JSON.stringify(data));
+});
+```
+
+
+## 属性
+
+ | 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| -------- | -------- | -------- | -------- | -------- |
+| pid | number | 是 | 否 | 进程ID。 |
+| uid | number | 是 | 否 | 用户ID。 |
+| processName | string | 是 | 否 | 进程名称。 |
+| bundleNames | Array<string> | 是 | 否 | 进程中所有运行的包名称。 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-radio.md b/zh-cn/application-dev/reference/apis/js-apis-radio.md
index 90d03a94796569fbb3d225ffd979220e4bd17cf5..1d7b120625bd501e8f10cb603614947aefb800ae 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-radio.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-radio.md
@@ -17,7 +17,7 @@ getRadioTech\(slotId: number, callback: AsyncCallback<\{psRadioTech: RadioTechno
获取当前接入的CS域和PS域无线接入技术,使用callback方式作为异步方法。
-需要ohos.permission.GET\_NETWORK\_INFO权限。
+**需要权限**:ohos.permission.GET_NETWORK_INFO。
**系统能力**:SystemCapability.Telephony.CoreService
@@ -44,7 +44,7 @@ getRadioTech\(slotId: number\): Promise<\{psRadioTech: RadioTechnology, csRadioT
获取当前接入的CS域和PS域无线接入技术,使用Promise方式作为异步方法。
-需要ohos.permission.GET\_NETWORK\_INFO权限。
+**需要权限**:ohos.permission.GET_NETWORK_INFO。
**系统能力**:SystemCapability.Telephony.CoreService
@@ -79,7 +79,7 @@ getNetworkState\(callback: AsyncCallback\): void
获取网络状态,使用callback方式作为异步方法。
-需要ohos.permission.GET\_NETWORK\_INFO权限。
+**需要权限**:ohos.permission.GET_NETWORK_INFO。
**系统能力**:SystemCapability.Telephony.CoreService
@@ -104,7 +104,7 @@ getNetworkState\(slotId: number, callback: AsyncCallback\): void
获取网络状态,使用callback方式作为异步方法。
-需要ohos.permission.GET\_NETWORK\_INFO权限。
+**需要权限**:ohos.permission.GET_NETWORK_INFO。
**系统能力**:SystemCapability.Telephony.CoreService
@@ -131,7 +131,7 @@ getNetworkState\(slotId?: number\): Promise
获取网络状态,使用Promise方式作为异步方法。
-需要ohos.permission.GET\_NETWORK\_INFO权限。
+**需要权限**:ohos.permission.GET_NETWORK_INFO。
**系统能力**:SystemCapability.Telephony.CoreService
@@ -338,9 +338,9 @@ promise.then(data => {
isRadioOn\(callback: AsyncCallback\): void
-判断Radio是否打开,使用callback方式作为异步方法。
+判断主卡的Radio是否打开,使用callback方式作为异步方法。
-需要ohos.permission.GET\_NETWORK\_INFO权限。
+**需要权限**:ohos.permission.GET_NETWORK_INFO。
**系统能力**:SystemCapability.Telephony.CoreService
@@ -359,16 +359,49 @@ radio.isRadioOn((err, data) => {
```
-## radio.isRadioOn7+
+## radio.isRadioOn7+
-isRadioOn\(\): Promise
+isRadioOn\(slotId: number, callback: AsyncCallback\): void
+
+判断指定卡槽位的Radio是否打开,使用callback方式作为异步方法。
+
+**需要权限**:ohos.permission.GET_NETWORK_INFO。
+
+**系统能力**:SystemCapability.Telephony.CoreService
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ------------------------ | ---- | ------------------------------------------------------- |
+| slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
+| callback | AsyncCallback\ | 是 | 回调函数。 - true:Radio打开 - false:Radio关闭 |
+
+**示例:**
+
+```
+let slotId = 0;
+radio.isRadioOn(slotId, (err, data) => {
+ console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+
+## radio.isRadioOn7+
+
+isRadioOn\(slotId?: number\): Promise
判断Radio是否打开,使用Promise方式作为异步方法。
-需要ohos.permission.GET\_NETWORK\_INFO权限。
+**需要权限**:ohos.permission.GET_NETWORK_INFO。
**系统能力**:SystemCapability.Telephony.CoreService
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------ | ------ | ---- | -------------------------------------- |
+| slotId | number | 否 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 如果不指定slotId,默认判断主卡Radio是否打开 |
+
**返回值:**
| 类型 | 说明 |
@@ -378,7 +411,8 @@ isRadioOn\(\): Promise
**示例:**
```
-let promise = radio.isRadioOn();
+let slotId = 0;
+let promise = radio.isRadioOn(slotId);
promise.then(data => {
console.log(`isRadioOn success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
@@ -501,6 +535,7 @@ promise.then(data => {
| plmnNumeric | string | 注册网络的PLMN码。 **系统能力**:SystemCapability.Telephony.CoreService |
| isRoaming | boolean | 是否处于漫游状态。 **系统能力**:SystemCapability.Telephony.CoreService |
| regState | [RegState](#RegState) | 设备的网络注册状态。 **系统能力**:SystemCapability.Telephony.CoreService |
+| cfgTech8+ | [RadioTechnology](#RadioTechnology) | 设备的无线接入技术。 **系统能力**:SystemCapability.Telephony.CoreService |
| nsaState | [NsaState](#NsaState) | 设备的NSA网络注册状态。 **系统能力**:SystemCapability.Telephony.CoreService |
| isCaActive | boolean | CA的状态。 **系统能力**:SystemCapability.Telephony.CoreService |
| isEmergency | boolean | 此设备是否只允许拨打紧急呼叫。 **系统能力**:SystemCapability.Telephony.CoreService |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-screenshot.md b/zh-cn/application-dev/reference/apis/js-apis-screenshot.md
new file mode 100644
index 0000000000000000000000000000000000000000..881f2751dcf2612f30a1aebc9ac834b7bf380588
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-screenshot.md
@@ -0,0 +1,126 @@
+# 屏幕截图
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+
+## 导入模块
+
+```
+import screenshot from '@ohos.screenshot';
+```
+
+## ScreenshotOptions
+
+设置截取图像的信息。
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ---------- | ------------- | ---- | ------------------------------------------------------------ |
+| screenRect | [Rect](#Rect) | 否 | 表示截取图像的区域,不传值默认为全屏。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| imageSize | [Size](#Size) | 否 | 表示截取图像的大小,不传值默认为全屏。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| rotation | number | 否 | 表示截取图像的旋转角度,取值可为0、90、180、270,默认值为0。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+
+
+## Rect
+
+表示截取图像的区域。
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------ | ------ | ---- | ------------------------------------------------------------ |
+| left | number | 是 | 表示截取图像区域的左边界。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| top | number | 是 | 表示截取图像区域的上边界。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| width | number | 是 | 表示截取图像区域的宽度。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| height | number | 是 | 表示截取图像区域的高度。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+
+
+## Size
+
+表示截取图像的大小。
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------ | ------ | ---- | ------------------------------------------------------------ |
+| width | number | 是 | 表示截取图像的宽度。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| height | number | 是 | 表示截取图像的高度。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+
+## screenshot.save
+
+save(options?: ScreenshotOptions, callback: AsyncCallback<image.PixelMap>): void
+
+获取屏幕截图。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+**需要权限**:ohos.permission.CAPTURE_SCREEN
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
+ | options | [ScreenshotOptions](#ScreenshotOptions) | 否 | 该类型的参数包含screenRect,imageSize,rotation三个参数,需要分别设置这三个参数。 |
+ | callback | AsyncCallback<image.PixelMap> | 是 | 回调返回一个PixelMap对象。 |
+
+- 示例
+
+ ```
+ var ScreenshotOptions = {
+ "screenRect": {
+ "left": 200,
+ "top": 100,
+ "width": 200,
+ "height": 200},
+ "imageSize": {
+ "width": 300,
+ "height": 300},
+ "rotation": 0
+ };
+ screenshot.save(ScreenshotOptions, (err, data) => {
+ if (err) {
+ console.error('Failed to save the screenshot. Error: ' + JSON.stringify(err));
+ return;
+ }
+ console.info('Screenshot saved. Data: ' + JSON.stringify(data));
+ });
+ ```
+
+## screenshot.save
+
+save(options?: ScreenshotOptions): Promise<image.PixelMap>
+
+获取屏幕截图。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+**需要权限**:ohos.permission.CAPTURE_SCREEN
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
+ | options | [ScreenshotOptions](#ScreenshotOptions) | 否 | 该类型的参数包含screenRect,imageSize,rotation三个参数,需要分别设置这三个参数。 |
+
+- 返回值
+
+ | 类型 | 说明 |
+ | ----------------------------- | ----------------------------------------------- |
+ | Promise<image.PixelMap> | 以Promise形式返回结果,返回image.PixelMap对象。 |
+
+- 示例
+
+ ```
+ var ScreenshotOptions = {
+ "screenRect": {
+ "left": 200,
+ "top": 100,
+ "width": 200,
+ "height": 200},
+ "imageSize": {
+ "width": 300,
+ "height": 300},
+ "rotation": 0
+ };
+ let promise = screenshot.save(ScreenshotOptions);
+ promise.then(() => {
+ console.log('screenshot save success');
+ }).catch((err) => {
+ console.log('screenshot save fail: ' + JSON.stringify(err));
+ });
+ ```
diff --git a/zh-cn/application-dev/reference/apis/js-apis-sms.md b/zh-cn/application-dev/reference/apis/js-apis-sms.md
index a4c3d545ad6fe9eb60f1a9744fcea86323027018..bad012c67faa9b803406a051265d0311d253cdac 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-sms.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-sms.md
@@ -16,6 +16,8 @@ createMessage\(pdu: Array, specification: string, callback: AsyncCallba
根据协议数据单元(PDU)和指定的短信协议创建短信实例,使用callback方式作为异步方法。
+**系统能力**:SystemCapability.Telephony.SmsMms
+
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
@@ -42,6 +44,8 @@ createMessage\(pdu: Array, specification: string\): Promise\): void
获取发送短信的默认SIM卡槽ID,使用callback方式作为异步方法。
+**系统能力**:SystemCapability.Telephony.SmsMms
+
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
@@ -129,6 +137,8 @@ getDefaultSmsSlotId\(\): Promise
获取发送短信的默认SIM卡槽ID,使用Promise方式作为异步方法。
+**系统能力**:SystemCapability.Telephony.SmsMms
+
**返回值:**
| 类型 | 说明 |
@@ -153,7 +163,9 @@ setSmscAddr\(slotId: number, smscAddr: string, callback: AsyncCallback\):
设置短信服务中心(SMSC)地址,使用callback方式作为异步方法。
-需要ohos.permission.SET\_TELEPHONY\_STATE权限,该权限为系统权限。
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE,该权限为系统权限
+
+**系统能力**:SystemCapability.Telephony.SmsMms
**参数:**
@@ -180,7 +192,9 @@ setSmscAddr\(slotId: number, smscAddr: string\): Promise
设置短信服务中心(SMSC)地址,使用Promise方式作为异步方法。
-需要ohos.permission.SET\_TELEPHONY\_STATE权限,该权限为系统权限。
+**需要权限**:ohos.permission.SET_TELEPHONY_STATE,该权限为系统权限
+
+**系统能力**:SystemCapability.Telephony.SmsMms
**参数:**
@@ -215,7 +229,9 @@ getSmscAddr\(slotId: number, callback: AsyncCallback\): void
获取短信服务中心(SMSC)地址,使用callback方式作为异步方法。
-需要ohos.permission.GET\_TELEPHONY\_STATE权限,该权限为系统权限。
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE,该权限为系统权限
+
+**系统能力**:SystemCapability.Telephony.SmsMms
**参数:**
@@ -240,7 +256,9 @@ getSmscAddr\(slotId: number\): Promise
获取短信服务中心(SMSC)地址,使用Promise方式作为异步方法。
-需要ohos.permission.GET\_TELEPHONY\_STATE权限,该权限为系统权限。
+**需要权限**:ohos.permission.GET_TELEPHONY_STATE,该权限为系统权限
+
+**系统能力**:SystemCapability.Telephony.SmsMms
**参数:**
@@ -271,6 +289,8 @@ promise.then(data => {
短信实例。
+**系统能力**:SystemCapability.Telephony.SmsMms
+
| 变量 | 类型 | 说明 |
| ------------------------ | --------------------------------------- | ------------------------------------------------------------ |
| emailAddress | string | 电子邮件地址。 |
@@ -294,13 +314,13 @@ promise.then(data => {
短信类型。
-| 变量 | 值 | 说明 |
-| ---------------- | ---- | ---------------------------------------- |
-| UNKNOWN | 0 | 未知类型。 |
-| INSTANT_MESSAGE | 1 | 即时消息,收到后立即显示。 |
-| OPTIONAL_MESSAGE | 2 | 存储在设备或SIM卡上的短信。 |
-| SIM_MESSAGE | 3 | 包含SIM卡信息的短信,需要存储在SIM卡中。 |
-| FORWARD_MESSAGE | 4 | 要转发到另一台设备的短信。 |
+| 变量 | 值 | 说明 |
+| ---------------- | ---- | ------------------------------------------------------------ |
+| UNKNOWN | 0 | 未知类型。 **系统能力**:SystemCapability.Telephony.SmsMms |
+| INSTANT_MESSAGE | 1 | 即时消息,收到后立即显示。 **系统能力**:SystemCapability.Telephony.SmsMms |
+| OPTIONAL_MESSAGE | 2 | 存储在设备或SIM卡上的短信。 **系统能力**:SystemCapability.Telephony.SmsMms |
+| SIM_MESSAGE | 3 | 包含SIM卡信息的短信,需要存储在SIM卡中。 **系统能力**:SystemCapability.Telephony.SmsMms |
+| FORWARD_MESSAGE | 4 | 要转发到另一台设备的短信。 **系统能力**:SystemCapability.Telephony.SmsMms |
## SendMessageOptions
@@ -309,6 +329,8 @@ promise.then(data => {
根据SendMessageOptions中的可选参数content的值判断短信类型。
+**系统能力**:SystemCapability.Telephony.SmsMms
+
| 参数名 | 类型 | 必填 | 说明 |
| ---------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| slotId | number | 是 | 用于发送短信的SIM卡槽ID: - 0:卡槽1 - 1:卡槽2 |
@@ -324,6 +346,8 @@ promise.then(data => {
回调实例。返回短信发送结果、存储已发送短信的URI和是否为长短信的最后一部分。
+**系统能力**:SystemCapability.Telephony.SmsMms
+
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| isLastPart | boolean | 否 | 指定这是否是长短信的最后一部分。true表示这是长短信的最后一部分,false表示不是。默认为false。 |
@@ -335,6 +359,8 @@ promise.then(data => {
回调实例。返回短信送达报告。
+**系统能力**:SystemCapability.Telephony.SmsMms
+
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------------------- | ---- | -------------- |
| pdu | Array<number> | 是 | 短信送达报告。 |
@@ -344,6 +370,8 @@ promise.then(data => {
短信发送结果。
+**系统能力**:SystemCapability.Telephony.SmsMms
+
| 参数名 | 值 | 说明 |
| ------------------------------------ | ---- | ------------------------------------------------------ |
| SEND_SMS_SUCCESS | 0 | 发送短信成功。 |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-telephony-data.md b/zh-cn/application-dev/reference/apis/js-apis-telephony-data.md
new file mode 100644
index 0000000000000000000000000000000000000000..73240d2a2987245cae664a8df78563e482d77ffb
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-telephony-data.md
@@ -0,0 +1,289 @@
+# 蜂窝数据
+
+>**说明:**
+>
+>本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+
+## 导入模块
+
+```
+import data from '@ohos.telephony.data';
+```
+
+## data.getDefaultCellularDataSlotId
+
+getDefaultCellularDataSlotId(callback: AsyncCallback\): void
+
+获取默认移动数据的SIM卡,使用callback方式作为异步方法。
+
+**需要权限**:ohos.permission.GET_NETWORK_INFO
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ----------------------- | ---- | ------------------------------------------ |
+| callback | AsyncCallback\ | 是 | 回调函数。 0:卡槽1。 1:卡槽2。 |
+
+**示例:**
+
+```
+data.getDefaultCellularDataSlotId((err, data) => {
+ console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## data.getDefaultCellularDataSlotId
+
+getDefaultCellularDataSlotId(): Promise\
+
+获取默认移动数据的SIM卡,使用Promise方式作为异步方法。
+
+**需要权限**:ohos.permission.GET_NETWORK_INFO
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**返回值:**
+
+| 类型 | 说明 |
+| ----------------- | ------------------------------------------------------------ |
+| Promise\ | 以Promise形式返回获取默认移动数据的SIM卡。 0:卡槽1。 1:卡槽2。 |
+
+**示例:**
+
+```
+let promise = data.getDefaultCellularDataSlotId();
+promise.then((data) => {
+ console.log(`test success, promise: data->${JSON.stringify(data)}`);
+}).catch((err) => {
+ console.error(`test fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## data.getCellularDataFlowType
+
+getCellularDataFlowType(callback: AsyncCallback\): void
+
+获取蜂窝数据业务的上下行状态,使用callback方式作为异步方法。
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ---------------------------------------------- | ---- | ---------- |
+| callback | AsyncCallback\<[DataFlowType](#DataFlowType)\> | 是 | 回调函数。 |
+
+**示例:**
+
+```
+data.getCellularDataFlowType((err, data) => {
+ console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## data.getCellularDataFlowType
+
+getCellularDataFlowType(): Promise\
+
+获取蜂窝数据业务的上下行状态,使用Promise方式作为异步方法。
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**返回值:**
+
+| 类型 | 说明 |
+| ---------------------------------------- | ----------------------------------------------- |
+| Promise\<[DataFlowType](#DataFlowType)\> | 以Promise形式返回获取蜂窝数据业务的上下行状态。 |
+
+**示例:**
+
+```
+let promise = data.getCellularDataFlowType();
+promise.then((data) => {
+ console.log(`test success, promise: data->${JSON.stringify(data)}`);
+}).catch((err) => {
+ console.error(`test fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## data.getCellularDataState
+
+getCellularDataState(callback: AsyncCallback\): void
+
+获取分组交换域(PS域)的连接状态,使用callback方式作为异步方法。
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ------------------------------------------------------ | ---- | ---------- |
+| callback | AsyncCallback\<[DataConnectState](#DataConnectState)\> | 是 | 回调函数。 |
+
+**示例:**
+
+```
+data.getCellularDataState((err, data) => {
+ console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## data.getCellularDataState
+
+getCellularDataState(): Promise\
+
+获取分组交换域(PS域)的连接状态,使用Promise方式作为异步方法。
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**返回值:**
+
+| 类型 | 说明 |
+| ------------------------------------------------ | ------------------------------------- |
+| Promise\<[DataConnectState](#DataConnectState)\> | 以Promise形式返回获取PS域的连接状态。 |
+
+**示例:**
+
+```
+let promise = data.getCellularDataState();
+promise.then((data) => {
+ console.log(`test success, promise: data->${JSON.stringify(data)}`);
+}).catch((err) => {
+ console.error(`test fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## data.isCellularDataEnabled
+
+isCellularDataEnabled(callback: AsyncCallback\): void
+
+检查蜂窝数据业务是否启用,使用callback方式作为异步方法。
+
+**需要权限**:ohos.permission.GET_NETWORK_INFO
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ------------------------ | ---- | ------------------------------------------------------------ |
+| callback | AsyncCallback\ | 是 | 回调函数。 true:蜂窝数据业务已启用。 false:蜂窝数据业务已禁用。 |
+
+**示例:**
+
+```
+data.isCellularDataEnabled((err, data) => {
+ console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## data.isCellularDataEnabled
+
+isCellularDataEnabled(): Promise\
+
+检查蜂窝数据业务是否启用,使用Promise方式作为异步方法。
+
+**需要权限**:ohos.permission.GET_NETWORK_INFO
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**返回值:**
+
+| 类型 | 说明 |
+| ------------------ | ------------------------------------------------------------ |
+| Promise\ | 以Promise形式返回检查蜂窝数据业务是否启用。 true:蜂窝数据业务已启用。 false:蜂窝数据业务已禁用。 |
+
+**示例:**
+
+```
+let promise = data.isCellularDataEnabled();
+promise.then((data) => {
+ console.log(`test success, promise: data->${JSON.stringify(data)}`);
+}).catch((err) => {
+ console.error(`test fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## data.isCellularDataRoamingEnabled
+
+isCellularDataRoamingEnabled(slotId: number, callback: AsyncCallback\): void
+
+检查蜂窝数据业务是否启用漫游,使用callback方式作为异步方法。
+
+**需要权限**:ohos.permission.GET_NETWORK_INFO
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ------------------------ | ---- | ------------------------------------------------------------ |
+| slotId | number | 是 | 卡槽ID。 0:卡槽1。 1:卡槽2。 |
+| callback | AsyncCallback\ | 是 | 回调函数。 true:蜂窝数据业务已启用漫游。 false:蜂窝数据业务已禁用漫游。 |
+
+**示例:**
+
+```
+data.isCellularDataRoamingEnabled(0,(err, data) => {
+ console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
+});
+```
+
+## data.isCellularDataRoamingEnabled
+
+isCellularDataRoamingEnabled(slotId: number): Promise\
+
+检查蜂窝数据业务是否启用漫游,使用Promise方式作为异步方法。
+
+**需要权限**:ohos.permission.GET_NETWORK_INFO
+
+**系统能力**:SystemCapability.Telephony.CellularData
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------ | ------ | ---- | ---------------------------------------- |
+| slotId | number | 是 | 卡槽ID。 0:卡槽1。 1:卡槽2。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ------------------ | ------------------------------------------------------------ |
+| Promise\ | 以Promise形式返回检查蜂窝数据业务是否启用漫游。 true:蜂窝数据业务已启用漫游。 false:蜂窝数据业务已禁用漫游。 |
+
+**示例:**
+
+```
+let promise = data.isCellularDataRoamingEnabled(0);
+promise.then((data) => {
+ console.log(`test success, promise: data->${JSON.stringify(data)}`);
+}).catch((err) => {
+ console.error(`test fail, promise: err->${JSON.stringify(err)}`);
+});
+```
+
+## DataFlowType
+
+ 描述蜂窝数据流类型。
+
+| 参数名 | 值 | 说明 |
+| ------ | ---------------------- | ------------------------------------------------------------ |
+| 0 | DATA_FLOW_TYPE_NONE | 表示没有上行或下行数据。 **系统能力**:SystemCapability.Telephony.CellularData |
+| 1 | DATA_FLOW_TYPE_DOWN | 表示只有下行数据。 **系统能力**:SystemCapability.Telephony.CellularData |
+| 2 | DATA_FLOW_TYPE_UP | 表示只有上行数据。 **系统能力**:SystemCapability.Telephony.CellularData |
+| 3 | DATA_FLOW_TYPE_UP_DOWN | 表示有上下行数据。 **系统能力**:SystemCapability.Telephony.CellularData |
+| 4 | DATA_FLOW_TYPE_DORMANT | 表示没有上下行数据,底层链路处于休眠状态。 **系统能力**:SystemCapability.Telephony.CellularData |
+
+## DataConnectState
+
+ 描述蜂窝数据链路连接状态。
+
+| 参数名 | 值 | 说明 |
+| ------ | ----------------------- | ------------------------------------------------------------ |
+| -1 | DATA_STATE_UNKNOWN | 表示蜂窝数据链路未知。 **系统能力**:SystemCapability.Telephony.CellularData |
+| 0 | DATA_STATE_DISCONNECTED | 表示蜂窝数据链路断开。 **系统能力**:SystemCapability.Telephony.CellularData |
+| 1 | DATA_STATE_CONNECTING | 表示正在连接蜂窝数据链路。 **系统能力**:SystemCapability.Telephony.CellularData |
+| 2 | DATA_STATE_CONNECTED | 表示蜂窝数据链路已连接。 **系统能力**:SystemCapability.Telephony.CellularData |
+| 3 | DATA_STATE_SUSPENDED | 表示蜂窝数据链路被挂起。 **系统能力**:SystemCapability.Telephony.CellularData |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis/js-apis-uripermissionmanager.md b/zh-cn/application-dev/reference/apis/js-apis-uripermissionmanager.md
new file mode 100644
index 0000000000000000000000000000000000000000..34cc33c69437954800242c7cbeff198bccd1da5f
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis/js-apis-uripermissionmanager.md
@@ -0,0 +1,76 @@
+# UriPermissionManager
+
+- [导入模块](#导入模块)
+- [verifyUriPermission](#verifyUriPermission)
+- [verifyUriPermission](#verifyUriPermission)
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 本模块首批接口从API 9开始支持。
+
+
+Uri权限管理。
+
+
+## 导入模块
+
+
+```
+import UriPermissionManager from '@@ohos.application.UriPermissionManager';
+```
+
+
+## verifyUriPermission
+
+verifyUriPermission(uri: string, flag: wantConstant.Flags, accessTokenId: number, callback: AsyncCallback<number>): void
+
+检验某个应用是否对指定的uri有flag指定的权限。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | uri | string | 是 | 指向文件的uri,例如fileshare:///com.samples.filesharetest.FileShare/person/10。 |
+ | flag | wantConstant.Flags | 是 | uri的读权限或写权限。 |
+ | accessTokenId | number | 是 | 每个应用的唯一标识ID,开发者通过包管理接口自行获取。 |
+ | callback | AsyncCallback<number> | 是 | callback形式返回启动结果,返回0表示有权限,返回-1表示无权限。 |
+
+- 示例:
+
+ ```
+ let uri = "fileshare:///com.samples.filesharetest.FileShare/person/10"
+ UriPermissionManager.verifyUriPermission(uri, wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, accessTokenId, (result) => {
+ console.log("result.code = " + result.code)
+ }) // accessTokenId开发者通过包管理接口自行获取
+ ```
+
+
+## verifyUriPermission
+
+verifyUriPermission(uri: string, flag: wantConstant.Flags, accessTokenId: number): Promise<number>
+
+检验某个应用是否对指定的uri有flag指定的权限。
+
+- 参数:
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | -------- | -------- |
+ | uri | string | 是 | 指向文件的uri,例如fileshare:///com.samples.filesharetest.FileShare/person/10。 |
+ | flag | wantConstant.Flags | 是 | uri的读权限或写权限。 |
+ | accessTokenId | number | 是 | 每个应用的唯一标识ID,开发者通过包管理接口自行获取。 |
+
+- 返回值:
+ | 类型 | 说明 |
+ | -------- | -------- |
+ | Promise<number> | 返回0表示有权限,返回-1表示无权限。 |
+
+- 示例:
+
+ ```
+ let uri = "fileshare:///com.samples.filesharetest.FileShare/person/10"
+ UriPermissionManager.verifyUriPermission(uri, wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, accessTokenId)
+ .then((data) => {
+ console.log('Verification succeeded.' + data)
+ }).catch((error) => {
+ console.log('Verification failed.');
+ })
+ ```
+
diff --git a/zh-cn/application-dev/reference/apis/js-apis-usb.md b/zh-cn/application-dev/reference/apis/js-apis-usb.md
index 40b5288a86b3960aabd4bc05966ebc6605f7297d..ab99f323c24414152803f02edc7ba2f308f414fa 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-usb.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-usb.md
@@ -3,25 +3,20 @@
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
-
## 导入模块
```
import usb from "@ohos.usb";
```
-
-## 权限
-
-无
-
-
## usb.getDevices
usb.getDevices(): Array<Readonly<USBDevice>>
获取USB设备列表。
+**系统能力**: SystemCapability.USB.USBManager
+
- 返回值:
| 类型 | 说明 |
| -------- | -------- |
@@ -92,6 +87,8 @@ usb.connectDevice(device: USBDevice): Readonly<USBDevicePipe>
需要调用[usb.getDevices](#usbgetdevices)获取设备信息以及device;再调用[usb.requestRight](#usbrequestright)获取设备请求权限。
+**系统能力**: SystemCapability.USB.USBManager
+
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
@@ -115,6 +112,8 @@ usb.hasRight(deviceName: string): boolean
判断是否有权访问该设备。
+**系统能力**: SystemCapability.USB.USBManager
+
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
@@ -139,6 +138,8 @@ usb.requestRight(deviceName: string): Promise<boolean>
请求软件包的临时权限以访问设备。
+**系统能力**: SystemCapability.USB.USBManager
+
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
@@ -166,6 +167,8 @@ usb.claimInterface(pipe: USBDevicePipe, iface: USBInterface, force?: boolean): n
需要调用[usb.getDevices](#usbgetdevices)获取设备信息以及interfaces;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)接口得到devicepipe作为参数。
+**系统能力**: SystemCapability.USB.USBManager
+
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
@@ -193,6 +196,8 @@ usb.releaseInterface(pipe: USBDevicePipe, iface: USBInterface): number
需要调用[usb.claimInterface](#usbclaiminterface)先获取接口,才能使用此方法释放接口。
+**系统能力**: SystemCapability.USB.USBManager
+
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
@@ -219,6 +224,8 @@ usb.setConfiguration(pipe: USBDevicePipe, config: USBConfig): number
需要调用[usb.getDevices](#usbgetdevices)获取设备信息以及config;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)得到devicepipe作为参数。
+**系统能力**: SystemCapability.USB.USBManager
+
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
@@ -245,6 +252,8 @@ usb.setInterface(pipe: USBDevicePipe, iface: USBInterface): number
需要调用[usb.getDevices](#usbgetdevices)获取设备列表以及interfaces;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)得到devicepipe作为参数。
+**系统能力**: SystemCapability.USB.USBManager
+
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
@@ -271,6 +280,8 @@ usb.getRawDescriptor(pipe: USBDevicePipe): Uint8Array
需要调用[usb.getDevices](#usbgetdevices)获取设备列表;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)接口得到devicepipe作为参数。
+**系统能力**: SystemCapability.USB.USBManager
+
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
@@ -295,6 +306,8 @@ usb.getFileDescriptor(pipe: USBDevicePipe): number
需要调用[usb.getDevices](#usbgetdevices)获取设备列表;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)接口得到devicepipe作为参数。
+**系统能力**: SystemCapability.USB.USBManager
+
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
@@ -319,6 +332,8 @@ usb.controlTransfer(pipe: USBDevicePipe, contrlparam: USBControlParams, timeout?
需要调用[usb.getDevices](#usbgetdevices)获取设备列表;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)接口得到devicepipe作为参数。
+**系统能力**: SystemCapability.USB.USBManager
+
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
@@ -347,6 +362,8 @@ usb.bulkTransfer(pipe: USBDevicePipe, endpoint: USBEndpoint, buffer: Uint8Array,
需要调用[usb.getDevices](#usbgetdevices)获取设备信息列表以及endpoint;再调用[usb.requestRight](#usbrequestright)获取设备请求权限;然后调用[usb.connectDevice](#usbconnectdevice)接口得到返回数据devicepipe之后,再次获取接口[usb.claimInterface](#usbclaiminterface);再调用usb.bulkTransfer接口。
+**系统能力**: SystemCapability.USB.USBManager
+
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
@@ -379,6 +396,8 @@ usb.closePipe(pipe: USBDevicePipe): number
需要调用[usb.getDevices](#usbgetdevices)获取设备列表;调用[usb.requestRight](#usbrequestright)获取设备请求权限;调用[usb.connectDevice](#usbconnectdevice)得到devicepipe作为参数。
+**系统能力**: SystemCapability.USB.USBManager
+
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
@@ -402,14 +421,14 @@ usb.closePipe(pipe: USBDevicePipe): number
| 名称 | 参数类型 | 说明 |
| -------- | -------- | -------- |
-| address | number | 端点地址。 |
-| attributes | number | 端点属性。 |
-| interval | number | 端点间隔。 |
-| maxPacketSize | number | 端点最大数据包大小。 |
-| direction | [USBRequestDirection](#usbrequestdirection) | 端点的方向。 |
-| number | number | 端点号。 |
-| type | number | 端点类型。 |
-| interfaceId | number | 端点所属的接口的唯一标识。 |
+| address | number | 端点地址。 **系统能力**: SystemCapability.USB.USBManager |
+| attributes | number | 端点属性。 **系统能力**: SystemCapability.USB.USBManager |
+| interval | number | 端点间隔。 **系统能力**: SystemCapability.USB.USBManager |
+| maxPacketSize | number | 端点最大数据包大小。 **系统能力**: SystemCapability.USB.USBManager |
+| direction | [USBRequestDirection](#usbrequestdirection) | 端点的方向。 **系统能力**: SystemCapability.USB.USBManager |
+| number | number | 端点号。 **系统能力**: SystemCapability.USB.USBManager |
+| type | number | 端点类型。 **系统能力**: SystemCapability.USB.USBManager |
+| interfaceId | number | 端点所属的接口的唯一标识。 **系统能力**: SystemCapability.USB.USBManager |
## USBInterface
@@ -418,13 +437,13 @@ usb.closePipe(pipe: USBDevicePipe): number
| 名称 | 参数类型 | 说明 |
| -------- | -------- | -------- |
-| id | number | 接口的唯一标识。 |
-| protocol | number | 接口的协议。 |
-| clazz | number | 设备类型。 |
-| subClass | number | 设备子类。 |
-| alternateSetting | number | 在同一个接口中的多个描述符中进行切换设置。 |
-| name | string | 接口名称。 |
-| endpoints | Array<[USBEndpoint](#usbendpoint)> | 当前接口所包含的端点。 |
+| id | number | 接口的唯一标识。 **系统能力**: SystemCapability.USB.USBManager |
+| protocol | number | 接口的协议。 **系统能力**: SystemCapability.USB.USBManager |
+| clazz | number | 设备类型。 **系统能力**: SystemCapability.USB.USBManager |
+| subClass | number | 设备子类。 **系统能力**: SystemCapability.USB.USBManager |
+| alternateSetting | number | 在同一个接口中的多个描述符中进行切换设置。 **系统能力**: SystemCapability.USB.USBManager |
+| name | string | 接口名称。 **系统能力**: SystemCapability.USB.USBManager |
+| endpoints | Array<[USBEndpoint](#usbendpoint)> | 当前接口所包含的端点。 **系统能力**: SystemCapability.USB.USBManager |
## USBConfig
@@ -433,13 +452,13 @@ USB配置,一个[USBDevice](#usbdevice)中可以含有多个配置。
| 名称 | 参数类型 | 说明 |
| -------- | -------- | -------- |
-| id | number | 配置的唯一标识。 |
-| attributes | number | 配置的属性。 |
-| maxPower | number | 最大功耗,以毫安为单位。 |
-| name | string | 配置的名称,可以为空。 |
-| isRemoteWakeup | boolean | 检查当前配置是否支持远程唤醒。 |
-| isSelfPowered | boolean | 检查当前配置是否支持独立电源。 |
-| interfaces | Array <[USBInterface](#usbinterface)> | 配置支持的接口属性。 |
+| id | number | 配置的唯一标识。 **系统能力**: SystemCapability.USB.USBManager |
+| attributes | number | 配置的属性。 **系统能力**: SystemCapability.USB.USBManager |
+| maxPower | number | 最大功耗,以毫安为单位。 **系统能力**: SystemCapability.USB.USBManager |
+| name | string | 配置的名称,可以为空。 **系统能力**: SystemCapability.USB.USBManager |
+| isRemoteWakeup | boolean | 检查当前配置是否支持远程唤醒。 **系统能力**: SystemCapability.USB.USBManager |
+| isSelfPowered | boolean | 检查当前配置是否支持独立电源。 **系统能力**: SystemCapability.USB.USBManager |
+| interfaces | Array <[USBInterface](#usbinterface)> | 配置支持的接口属性。 **系统能力**: SystemCapability.USB.USBManager |
## USBDevice
@@ -448,19 +467,19 @@ USB设备信息。
| 名称 | 参数类型 | 说明 |
| -------- | -------- | -------- |
-| busNum | number | 总线地址。 |
-| devAddress | number | 设备地址。 |
-| serial | string | 序列号。 |
-| name | string | 设备名字。 |
-| manufacturerName | string | 产商信息。 |
-| productName | string | 产品信息。 |
-| version | string | 版本。 |
-| vendorId | number | 厂商ID。 |
-| productId | number | 产品ID。 |
-| clazz | number | 设备类。 |
-| subClass | number | 设备子类。 |
-| protocol | number | 设备协议码。 |
-| configs | Array<[USBConfig](#usbconfig)> | 设备配置描述符信息。 |
+| busNum | number | 总线地址。 **系统能力**: SystemCapability.USB.USBManager |
+| devAddress | number | 设备地址。 **系统能力**: SystemCapability.USB.USBManager |
+| serial | string | 序列号。 **系统能力**: SystemCapability.USB.USBManager |
+| name | string | 设备名字。 **系统能力**: SystemCapability.USB.USBManager |
+| manufacturerName | string | 产商信息。 **系统能力**: SystemCapability.USB.USBManager |
+| productName | string | 产品信息。 **系统能力**: SystemCapability.USB.USBManager |
+| version | string | 版本。 **系统能力**: SystemCapability.USB.USBManager |
+| vendorId | number | 厂商ID。 **系统能力**: SystemCapability.USB.USBManager |
+| productId | number | 产品ID。 **系统能力**: SystemCapability.USB.USBManager |
+| clazz | number | 设备类。 **系统能力**: SystemCapability.USB.USBManager |
+| subClass | number | 设备子类。 **系统能力**: SystemCapability.USB.USBManager |
+| protocol | number | 设备协议码。 **系统能力**: SystemCapability.USB.USBManager |
+| configs | Array<[USBConfig](#usbconfig)> | 设备配置描述符信息。 **系统能力**: SystemCapability.USB.USBManager |
## USBDevicePipe
@@ -469,8 +488,8 @@ USB设备消息传输通道,用于确定设备。
| 名称 | 参数类型 | 说明 |
| -------- | -------- | -------- |
-| busNum | number | 总线地址。 |
-| devAddress | number | 设备地址。 |
+| busNum | number | 总线地址。 **系统能力**: SystemCapability.USB.USBManager |
+| devAddress | number | 设备地址。 **系统能力**: SystemCapability.USB.USBManager |
## USBControlParams
@@ -480,11 +499,11 @@ USB设备消息传输通道,用于确定设备。
| 名称 | 参数类型 | 说明 |
| -------- | -------- | -------- |
| request | number | 请求类型。 |
-| target | [USBRequestTargetType](#usbrequesttargettype) | 请求目标类型。 |
-| reqType | [USBControlRequestType](#usbcontrolrequesttype) | 请求控制类型。 |
-| value | number | 请求参数。 |
-| index | number | 请求参数value对应的索引值。 |
-| data | Uint8Array | 用于写入或读取的缓冲区。 |
+| target | [USBRequestTargetType](#usbrequesttargettype) | 请求目标类型。 **系统能力**: SystemCapability.USB.USBManager |
+| reqType | [USBControlRequestType](#usbcontrolrequesttype) | 请求控制类型。 **系统能力**: SystemCapability.USB.USBManager |
+| value | number | 请求参数。 **系统能力**: SystemCapability.USB.USBManager |
+| index | number | 请求参数value对应的索引值。 **系统能力**: SystemCapability.USB.USBManager |
+| data | Uint8Array | 用于写入或读取的缓冲区。 **系统能力**: SystemCapability.USB.USBManager |
## USBRequestTargetType
@@ -494,10 +513,10 @@ USB设备消息传输通道,用于确定设备。
| 名称 | 默认值 | 说明 |
| -------- | -------- | -------- |
-| USB_REQUEST_TARGET_DEVICE | 0 | 设备。 |
-| USB_REQUEST_TARGET_INTERFACE | 1 | 接口。 |
-| USB_REQUEST_TARGET_ENDPOINT | 2 | 端点。 |
-| USB_REQUEST_TARGET_OTHER | 3 | 其他。 |
+| USB_REQUEST_TARGET_DEVICE | 0 | 设备。 **系统能力**: SystemCapability.USB.USBManager |
+| USB_REQUEST_TARGET_INTERFACE | 1 | 接口。 **系统能力**: SystemCapability.USB.USBManager |
+| USB_REQUEST_TARGET_ENDPOINT | 2 | 端点。 **系统能力**: SystemCapability.USB.USBManager |
+| USB_REQUEST_TARGET_OTHER | 3 | 其他。 **系统能力**: SystemCapability.USB.USBManager |
## USBControlRequestType
@@ -506,9 +525,9 @@ USB设备消息传输通道,用于确定设备。
| 名称 | 默认值 | 说明 |
| -------- | -------- | -------- |
-| USB_REQUEST_TYPE_STANDARD | 0 | 标准。 |
-| USB_REQUEST_TYPE_CLASS | 1 | 类。 |
-| USB_REQUEST_TYPE_VENDOR | 2 | 厂商。 |
+| USB_REQUEST_TYPE_STANDARD | 0 | 标准。 **系统能力**: SystemCapability.USB.USBManager |
+| USB_REQUEST_TYPE_CLASS | 1 | 类。 **系统能力**: SystemCapability.USB.USBManager |
+| USB_REQUEST_TYPE_VENDOR | 2 | 厂商。 **系统能力**: SystemCapability.USB.USBManager |
## USBRequestDirection
@@ -517,12 +536,12 @@ USB设备消息传输通道,用于确定设备。
| 名称 | 默认值 | 说明 |
| -------- | -------- | -------- |
-| USB_REQUEST_TYPE_STANDARD | 0 | 写数据,主设备往从设备。 |
-| USB_REQUEST_TYPE_CLASS | 0x80 | 读数据,从设备往主设备。 |
+| USB_REQUEST_TYPE_STANDARD | 0 | 写数据,主设备往从设备。 **系统能力**: SystemCapability.USB.USBManager |
+| USB_REQUEST_TYPE_CLASS | 0x80 | 读数据,从设备往主设备。 **系统能力**: SystemCapability.USB.USBManager |
| 名称 | 默认值 | 说明 |
| -------- | -------- | -------- |
-| NONE | 0 | 无。 |
-| ACM | 1 | 串口设备。 |
-| ECM | 2 | 网口设备。 |
-| HDC | 4 | HDC设备。 |
+| NONE | 0 | 无。 **系统能力**: SystemCapability.USB.USBManager |
+| ACM | 1 | 串口设备。 **系统能力**: SystemCapability.USB.USBManager |
+| ECM | 2 | 网口设备。 **系统能力**: SystemCapability.USB.USBManager |
+| HDC | 4 | HDC设备。 **系统能力**: SystemCapability.USB.USBManager |
diff --git a/zh-cn/application-dev/reference/apis/js-apis-window.md b/zh-cn/application-dev/reference/apis/js-apis-window.md
index 7ceb3a6c4b5c0ed422b81e41d329679df0464c73..0e14e726a69181d5bed3fb6e3233ea1889010cb1 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-window.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-window.md
@@ -3,494 +3,976 @@
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
-
## 导入模块
```
import window from '@ohos.window';
```
+## WindowType7+
+
+窗口类型。
+
+| 名称 | 默认值 | 说明 |
+| ----------------- | ------ | ------------------------------------------------------------ |
+| TYPE_APP | 0 | 表示应用子窗口。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| TYPE_SYSTEM_ALERT | 1 | 表示系统告警窗口。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
-## 系统能力
-SystemCapability.WindowManager.WindowManager.Core
+## AvoidAreaType7+
+窗口内容需要规避区域的类型。
+| 名称 | 默认值 | 说明 |
+| ----------- | ------ | ------------------------------------------------------------ |
+| TYPE_SYSTEM | 0 | 表示系统默认区域。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| TYPE_CUTOUT | 1 | 表示刘海屏区域。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
-## 权限列表
+## WindowMode7+
-ohos.permission.SYSTEM_FLOAT_WINDOW
+窗口模式。
+| 名称 | 默认值 | 说明 |
+| ---------- | ------ | ------------------------------------------------------------ |
+| UNDEFINED | 1 | 表示APP未定义窗口模式。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| FULLSCREEN | 2 | 表示APP全屏模式。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| PRIMARY | 3 | 表示APP分屏多窗口主要模式。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| SECONDARY | 4 | 表示APP分屏多窗口次要模式。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| FLOATING | 5 | 表示APP自由悬浮形式窗口模式。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
-## SystemBarProperties
+## SystemBarProperties
状态栏导航栏的属性。
-| 名称 | 参数类型 | 可读 | 可写 | 说明 |
-| -------- | -------- | -------- | -------- | -------- |
-| statusBarColor | string | 是 | 是 | 状态栏颜色,为16进制颜色,例如"\#00FF00"或"\#FF00FF00"。 |
-| isStatusBarLightIcon7+ | boolean | 是 | 是 | 状态栏图标是否为高亮状态。 |
-| navigationBarColor | string | 是 | 是 | 导航栏颜色,为16进制颜色,例如"\#00FF00"或"\#FF00FF00"。 |
-| isNavigationBarLightIcon7+ | boolean | 是 | 是 | 导航栏图标是否为高亮状态。 |
+| 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| -------------------------------------- | -------- | ---- | ---- | ------------------------------------------------------------ |
+| statusBarColor | string | 是 | 是 | 状态栏背景颜色,为16进制RGB或ARGB颜色,例如"\#00FF00"或"\#FF00FF00"。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| isStatusBarLightIcon7+ | boolean | 否 | 是 | 状态栏图标是否为高亮状态。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| statusBarContentColor8+ | string | 否 | 是 | 状态栏文字颜色。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| navigationBarColor | string | 是 | 是 | 导航栏背景颜色,为16进制RGB或ARGB颜色,例如"\#00FF00"或"\#FF00FF00"。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| isNavigationBarLightIcon7+ | boolean | 否 | 否 | 导航栏图标是否为高亮状态。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| navigationBarContentColor8+ | string | 否 | 是 | 导航栏文字颜色。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+
+## SystemBarRegionTint 8+
+单个导航栏或状态栏回调信息。
+
+| 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| --------------- | ------------------------- | ---- | ---- | ------------------------------------------------------------ |
+| type | [WindowType](#windowtype) | 是 | 是 | 当前属性改变的系统栏类型,仅支持类型为导航栏、状态栏的系统栏。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| isEnable | boolean | 是 | 是 | 当前系统栏是否显示。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| region | [Rect](#rect) | 是 | 是 | 当前系统栏的位置及大小。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| backgroundColor | string | 是 | 是 | 系统栏背景颜色,为16进制RGB或ARGB颜色,例如"\#00FF00"或"\#FF00FF00"。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| contentColor | string | 是 | 是 | 系统栏文字颜色。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+
+## SystemBarTintState 8+
+
+当前系统栏回调信息集合。
+
+| 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| ---------- | -------------------------------------------------- | ---- | ---- | ------------------------------------------------------------ |
+| displayId | number | 是 | 否 | 当前物理屏幕id。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| regionTint | Array<[SystemBarRegionTint](#systembartegiontint)> | 是 | 是 | 当前改变所有的系统栏信息。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
## Rect7+
矩形。
-| 名称 | 参数类型 | 可读 | 可写 | 说明 |
-| -------- | -------- | -------- | -------- | -------- |
-| left | number | 是 | 是 | 矩形区域的左边界。 |
-| top | number | 是 | 是 | 矩形区域的上边界。 |
-| width | number | 是 | 是 | 矩形区域的宽度。 |
-| height | number | 是 | 是 | 矩形区域的高度。 |
-
+| 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| ------ | -------- | ---- | ---- | ------------------------------------------------------------ |
+| left | number | 是 | 是 | 矩形区域的左边界。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| top | number | 是 | 是 | 矩形区域的上边界。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| width | number | 是 | 是 | 矩形区域的宽度。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| height | number | 是 | 是 | 矩形区域的高度。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
## AvoidArea7+
表示窗口内容规避区域。
-| 名称 | 参数类型 | 可读 | 可写 | 说明 |
-| -------- | -------- | -------- | -------- | -------- |
-| leftRect | [Rect](#rect) | 是 | 是 | 屏幕左侧的矩形区。 |
-| topRect | [Rect](#rect) | 是 | 是 | 屏幕顶部的矩形区。 |
-| rightRect | [Rect](#rect) | 是 | 是 | 屏幕右侧的矩形区。 |
-| bottomRect | [Rect](#rect) | 是 | 是 | 屏幕底部的矩形区。 |
-
+| 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| ---------- | ------------- | ---- | ---- | ------------------------------------------------------------ |
+| leftRect | [Rect](#rect) | 是 | 是 | 屏幕左侧的矩形区。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| topRect | [Rect](#rect) | 是 | 是 | 屏幕顶部的矩形区。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| rightRect | [Rect](#rect) | 是 | 是 | 屏幕右侧的矩形区。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| bottomRect | [Rect](#rect) | 是 | 是 | 屏幕底部的矩形区。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
## Size7+
窗口大小。
-| 名称 | 参数类型 | 可读 | 可写 | 说明 |
-| -------- | -------- | -------- | -------- | -------- |
-| width | number | 是 | 是 | 窗口宽度。 |
-| height | number | 是 | 是 | 窗口高度。 |
-
+| 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| ------ | -------- | ---- | ---- | ------------------------------------------------------------ |
+| width | number | 是 | 是 | 窗口宽度。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| height | number | 是 | 是 | 窗口高度。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
-## WindowProperties
+## WindowProperties
窗口属性。
-| 名称 | 参数类型 | 可读 | 可写 | 说明 |
-| -------- | -------- | -------- | -------- | -------- |
-| windowRect7+ | [Rect](#rect) | 是 | 否 | 窗口尺寸。 |
-| type7+ | [WindowType](#windowtype) | 是 | 否 | 窗口类型。 |
-| brightness | number | 是 | 是 | 屏幕亮度,取值范围为0~1,1表示最大亮度值。 |
-| isTransparent7+ | boolean | 是 | 是 | 窗口是否透明,默认为false。 |
-| isFullScreen | boolean | 是 | 是 | 是否全屏,默认为false。 |
-| isKeepScreenOn | boolean | 是 | 是 | 屏幕是否常亮,默认为false。 |
-| dimBehindValue7+ | number | 是 | 是 | 靠后的窗口的暗度值,取值范围为0~1,1表示最暗。 |
-| isLayoutFullScreen7+ | boolean | 是 | 是 | 窗口是否为沉浸式,默认为false。 |
-| focusable7+ | boolean | 是 | 是 | 窗口是否可聚焦,默认为true。 |
-| touchable7+ | boolean | 是 | 是 | 窗口是否可触摸,默认为true。 |
-| isPrivacyMode7+ | boolean | 是 | 是 | 隐私模式,默认为false。 |
-| isRoundCorner7+ | boolean | 是 | 是 | 窗口是否为圆角。 |
-
+| 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| ------------------------------- | ------------------------- | ---- | ---- | ------------------------------------------------------------ |
+| windowRect7+ | [Rect](#rect) | 是 | 是 | 窗口尺寸。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| type7+ | [WindowType](#windowtype) | 是 | 是 | 窗口类型。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| isFullScreen | boolean | 是 | 是 | 是否全屏,默认为false。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| isLayoutFullScreen7+ | boolean | 是 | 是 | 窗口是否为沉浸式,默认为false。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| focusable7+ | boolean | 是 | 否 | 窗口是否可聚焦,默认为true。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| touchable7+ | boolean | 是 | 否 | 窗口是否可触摸,默认为true。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
-## SplitScreenBoundsInfo7+
+## ColorSpace8+
-分屏边界相关信息。
+色域模式。
-| 名称 | 类型 | 说明 |
-| -------- | -------- | -------- |
-| [splitMode](#splitmode) | number | 表示分屏模式。 |
-| primaryBounds | [Rect](#rect) | 表示主要边界信息,返回Rect类实例。 |
-| secondaryBounds | [Rect](#rect) | 表示次要边界信息,返回Rect类实例。 |
+| 名称 | 默认值 | 说明 |
+| ---------- | ------ | ------------------------------------------------------------ |
+| DEFAULT | 0 | 默认色域模式。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+| WIDE_GAMUT | 1 | 广色域模式。 **系统能力**:SystemCapability.WindowManager.WindowManager.Core |
+## window.create7
-## window.getTopWindow
+create(id: string, type: WindowType, callback: AsyncCallback<Window>): void
-getTopWindow(callback: AsyncCallback<Window>): void
+创建子窗口,使用callback方式作为异步方法。
-获取当前窗口,用于获取到window实例。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | callback | AsyncCallback<[Window](#window)> | 是 | 回调返回当前窗口对象。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------------------------------------- | ---- | -------------------------- |
+ | id | string | 是 | 窗口id。 |
+ | type | [WindowType](#windowtype) | 是 | 窗口类型。 |
+ | callback | AsyncCallback<[Window](#window)> | 是 | 回调返回创建的子窗口对象。 |
- 示例
+
```
- window.getTopWindow((err, data) => {
+ window.create("first", window.WindowType.TYPE_APP, (err, data) => {
+ windowClass = data;
if (err) {
- console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err));
+ console.error('Failed to create the subWindow. Cause: ' + JSON.stringify(err));
return;
}
- console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data));
- windowClass = data;
+ console.info('SubWindow created. Data: ' + JSON.stringify(data))
+ windowClass.resetSize(500, 1000);
});
```
+## window.create7
-## window.create7+
+create(id: string, type: WindowType): Promise<Window>
-create(id: string, type: WindowType, callback: AsyncCallback<Window>): void
+创建子窗口,使用Promise方式作为异步方法。
-创建子窗口。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | id | string | 是 | 窗口id。 |
- | type | [WindowType](#windowtype) | 是 | 窗口类型。 |
- | callback | AsyncCallback<[Window](#window)> | 是 | 回调返回当前窗口对象。 |
-- 示例
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------------------------- | ---- | ---------- |
+ | id | string | 是 | 窗口id。 |
+ | type | [WindowType](#windowtype) | 是 | 窗口类型。 |
+- 返回值
-```
- window.create("first", 1, (err, data) => {
- windowClass = data;
- if (err) {
- console.error('Failed to create the subWindow. Cause: ' + JSON.stringify(err));
- return;
- }
- console.info('SubWindow created. Data: ' + JSON.stringify(data))
- windowClass.resetSize(500, 1000);
- windowClass.setOutsideTouchable(true);
- windowClass.loadContent("pages/index/index", (err, data) => {
+ | 类型 | 说明 |
+ | -------------------------------- | ------------------------------------------------- |
+ | Promise<[Window](#window)> | 以Promise形式返回结果,返回当前创建的子窗口对象。 |
+
+- 示例
+
+ ```
+ let promise = window.create("first", window.WindowType.TYPE_APP);
+ promise.then((data)=> {
+ console.info('SubWindow created. Data: ' + JSON.stringify(data))
+ }).catch((err)=>{
+ console.error('Failed to create the subWindow. Cause: ' + JSON.stringify(err));
});
-})
-```
+ ```
+## window.create8+
-## window.find7+
+create(ctx: Context, id: string, type: WindowType, callback: AsyncCallback<Window>): void
+
+当Context为[ServiceExtensionContext](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-service-extension-context.md)时,创建系统窗口,使用callback方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------- |
+ | ctx | [Context](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-Context.md) | 是 | 当前应用上下文信息, 为ServiceExtensionContext的基类。 |
+ | id | string | 是 | 窗口id。 |
+ | type | [WindowType](#windowtype) | 是 | 窗口类型。 |
+ | callback | AsyncCallback<[Window](#window)> | 是 | 回调返回当前窗口对象。 |
+
+- 示例
+
+ ```
+ window.create(this.context, "alertWindow", window.WindowType.TYPE_SYSTEM_ALERT, (err, data) => {
+ windowClass = data;
+ if (err) {
+ console.error('Failed to create the Window. Cause: ' + JSON.stringify(err));
+ return;
+ }
+ console.info('Window created. Data: ' + JSON.stringify(data))
+ windowClass.resetSize(500, 1000);
+ });
+ ```
+
+## window.create8+
+
+function create(ctx: Context, id: string, type: WindowType): Promise<Window>
+
+当Context为[ServiceExtensionContext](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-service-extension-context.md)时,创建系统窗口,使用Promise方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------------------------------------------------------------ | ---- | ----------------------------------------------------- |
+ | ctx | [Context](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-Context.md) | 是 | 当前应用上下文信息, 为ServiceExtensionContext的基类。 |
+ | id | string | 是 | 窗口id。 |
+ | type | [WindowType](#windowtype) | 是 | 窗口类型。 |
+
+- 返回值
+
+ | 类型 | 说明 |
+ | -------------------------------- | ----------------------------------------------- |
+ | Promise<[Window](#window)> | 以Promise形式返回结果,返回当前创建的窗口对象。 |
+
+- 示例
+
+ ```
+ let promise = window.create(this.context, "alertWindow", window.WindowType.TYPE_SYSTEM_ALERT);
+ promise.then((data)=> {
+ console.info('Window created. Data: ' + JSON.stringify(data))
+ }).catch((err)=>{
+ console.error('Failed to create the Window. Cause: ' + JSON.stringify(err));
+ });
+ ```
+
+## window.find7+
find(id: string, callback: AsyncCallback<Window>): void
-查找子窗口。
+查找id所对应的窗口,使用callback方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | id | string | 是 | 窗口id。 |
- | callback | AsyncCallback<[Window](#window)> | 是 | 回调返回当前窗口对象。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------------------------------------- | ---- | ---------------------------- |
+ | id | string | 是 | 窗口id。 |
+ | callback | AsyncCallback<[Window](#window)> | 是 | 回调返回当前查找的窗口对象。 |
- 示例
+
```
window.find("first", (err, data) => {
if (err) {
- console.error('Failed to find the subWindow. Cause: ' + JSON.stringify(err));
+ console.error('Failed to find the Window. Cause: ' + JSON.stringify(err));
return;
}
- console.info('SubWindow found. Data: ' + JSON.stringify(data))
+ console.info('window found. Data: ' + JSON.stringify(data))
windowClass = data;
- })
+ });
+ ```
+
+## window.find7+
+
+find(id: string): Promise<Window>
+
+查找id所对应的窗口,使用Promise方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | -------- |
+ | id | string | 是 | 窗口id。 |
+
+- 返回值
+
+ | 类型 | 说明 |
+ | -------------------------------- | ----------------------------------------------- |
+ | Promise<[Window](#window)> | 以Promise形式返回结果,返回当前查找的窗口对象。 |
+
+- 示例
+
+ ```
+ let promise = window.find("first");
+ promise.then((data)=> {
+ console.info('window found. Data: ' + JSON.stringify(data))
+ }).catch((err)=>{
+ console.error('Failed to find the Window. Cause: ' + JSON.stringify(err));
+ });
```
+## window.getTopWindow
-## window.getAbilityWindowMode7+
+getTopWindow(callback: AsyncCallback<Window>): void
-getAbilityWindowMode(callback: AsyncCallback<WindowMode>): void
+获取当前应用内最后显示的窗口,使用callback方式作为异步方法。
-获取当前窗口模式。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | callback | AsyncCallback<[WindowMode](#windowmode)> | 是 | 回调返回当前窗口模式。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------------------------------------- | ---- | -------------------------------------- |
+ | callback | AsyncCallback<[Window](#window)> | 是 | 回调返回当前应用内最后显示的窗口对象。 |
- 示例
+
```
- window.getAbilityWindowMode((err, data) => {
+ window.getTopWindow((err, data) => {
if (err) {
- console.error('Failed to obtain the window mode. Cause:' + JSON.stringify(err));
+ console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err));
return;
}
- console.info('Window mode obtained. Data:' + JSON.stringify(data))
-
+ console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data));
+ windowClass = data;
});
```
+## window.getTopWindow
+
+getTopWindow(): Promise<Window>
+
+获取当前应用内最后显示的窗口,使用Promise方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 返回值
+
+ | 类型 | 说明 |
+ | -------------------------------- | --------------------------------------------------------- |
+ | Promise<[Window](#window)> | 以Promise形式返回结果,返回当前应用内最后显示的窗口对象。 |
+
+- 示例
+
+ ```
+ let promise = window.getTopWindow();
+ promise.then((data)=> {
+ console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data))
+ }).catch((err)=>{
+ console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err));
+ })
+ ```
+
+## window.getTopWindow8+
-## window.getSplitScreenBounds7+
+getTopWindow(ctx: Context, callback: AsyncCallback<Window>): void
-getSplitScreenBounds(splitRatio: SplitRatio, callback: AsyncCallback<SplitScreenBoundsInfo>): void
+获取当前应用内最后显示的窗口,使用callback方式作为异步方法。
-获取分屏多窗口的位置和区域.。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | splitRatio | SplitRatio | 是 | 表示分屏比例,默认值为1:1,传值1表示1:2,传值2为2:1。 |
- | callback | AsyncCallback<[SplitScreenBoundsInfo](#splitscreenboundsinfo)> | 是 | 回调返回一个SplitScreenBoundsInfo对象,表示分屏边界相关信息。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ------------------------------------------------------------ | ---- | -------------------------------------- |
+ | ctx | [Context](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-Context.md) | 是 | 当前应用上下文信息。 |
+ | callback | AsyncCallback<[Window](#window)> | 是 | 回调返回当前应用内最后显示的窗口对象。 |
- 示例
+
```
- var splitRatio = '1:1';
- window.getSplitScreenBounds(splitRatio, (err, data) => {
+ window.getTopWindow(this.context, (err, data) => {
if (err) {
- console.error('Failed to obtain the split-screen boundary information. Cause: ' + JSON.stringify(err));
+ console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err));
return;
}
- console.info('Split-screen boundary information obtained. Data: ' + JSON.stringify(data))
-
+ console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data));
+ windowClass = data;
});
```
+## window.getTopWindow8+
+
+getTopWindow(ctx: Context): Promise<Window>
+
+获取当前应用内最后显示的窗口,使用Promise方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------------------------------------------------------------ | ---- | -------------------- |
+ | ctx | [Context](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-Context.md) | 是 | 当前应用上下文信息。 |
+
+- 返回值
+
+ | 类型 | 说明 |
+ | -------------------------------- | --------------------------------------------------------- |
+ | Promise<[Window](#window)> | 以Promise形式返回结果,返回当前应用内最后显示的窗口对象。 |
+
+- 示例
+
+ ```
+ let promise = window.getTopWindow(this.context);
+ promise.then((data)=> {
+ console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data))
+ }).catch((err)=>{
+ console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err));
+ })
+ ```
+
+## on('systemBarTintChange')8+
+
+on(type: 'systemBarTintChange', callback: Callback<SystemBarTintState>): void
+
+注册状态栏、导航栏的监听函数。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
+ | type | string | 是 | 设置监听类型。 - type为'systemBarTintChange'时表示监听类型为导航栏、状态栏属性变化监听; |
+ | callback | Callback<[SystemBarTintState](#systembartintstate)> | 是 | 回调返回监听到的信息。 |
+
+- 示例
+
+ ```
+ var type = 'systemBarTintChange';
+ windowClass.on(type, (data) => {
+ console.info('Succeeded in enabling the listener for systemBarTint changes. Data: ' + JSON.stringify(data));
+ });
+ ```
+
+## off('systemBarTintChange')8+
+
+off(type: 'systemBarTintChange', callback?: Callback<SystemBarTintState >): void
+
+关闭监听。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
+ | type | string | 是 | 设置监听类型。 - type为'systemBarTintChange'时表示监听类型为导航栏、状态栏属性变化监听; |
+ | callback | Callback<[SystemBarTintState](#systembartintstate)> | 否 | 回调返回监听到的信息。 |
+
+- 示例
+
+ ```
+ var type = 'systemBarTintChange';
+ windowClass.off(type);
+ ```
+
+## Window
+
+下列API示例中都需使用[getTopWindow()](#window-gettopwindow)、[create()](#window-create)、[find()](#window-find)等先获取到Window实例,再通过此实例调用对应方法。
+
+### hide7+
+
+hide (callback: AsyncCallback<void>): void
+
+隐藏当前窗口,使用callback方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ------------------------- | ---- | ---------- |
+ | callback | AsyncCallback<void> | 是 | 回调函数。 |
+
+- 示例
+
+ ```
+ windowClass.hide((err) => {
+ if (err) {
+ console.error('Failed to hide the window. Cause: ' + JSON.stringify(err));
+ return;
+ }
+ console.info('window hidden.')
+ })
+ ```
+
+### hide7+
+
+hide(): Promise<void>;
+
+隐藏当前窗口,使用Promise方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 返回值
+
+ | 类型 | 说明 |
+ | ------------------- | ----------------------------------------------- |
+ | Promise<void> | 以Promise形式返回结果,返回当前函数执行的结果。 |
+
+- 示例
+
+ ```
+ let promise = windowClass.hide();
+ promise.then(()=> {
+ console.info('window hidden.')
+ }).catch((err)=>{
+ console.error('Failed to hide the window. Cause: ' + JSON.stringify(err));
+ })
+ ```
+
+### show7+
+
+show(callback: AsyncCallback<void>): void
+
+显示当前窗口,使用callback方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ------------------------- | ---- | ---------- |
+ | callback | AsyncCallback<void> | 是 | 回调函数。 |
+
+- 示例
+
+ ```
+ windowClass.show((err) => {
+ if (err) {
+ console.error('Failed to show the window. Cause: ' + JSON.stringify(err));
+ return;
+ }
+ console.info('Succeeded in showing the window.')
+ })
+ ```
+
+### show7+
+
+show(): Promise<void>
+
+显示当前窗口,使用Promise方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 返回值
+
+ | 类型 | 说明 |
+ | ------------------- | ----------------------------------------------- |
+ | Promise<void> | 以Promise形式返回结果,返回当前函数执行的结果。 |
+
+- 示例
+
+ ```
+ let promise = windowClass.show();
+ promise.then(()=> {
+ console.info('Succeeded in showing the window.')
+ }).catch((err)=>{
+ console.error('Failed to show the window. Cause: ' + JSON.stringify(err));
+ })
+ ```
+
+### destroy7+
+
+destroy(callback: AsyncCallback<void>): void
+
+销毁当前窗口,使用callback方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ------------------------- | ---- | ---------- |
+ | callback | AsyncCallback<void> | 是 | 回调函数。 |
+
+- 示例
+
+ ```
+ windowClass.destroy((err) => {
+ if (err) {
+ console.error('Failed to destroy the window. Cause:' + JSON.stringify(err));
+ return;
+ }
+ console.info('Succeeded in destroying the window.')
+ })
+ ```
+
+### destroy7+
+
+destroy(): Promise<void>
+
+销毁当前窗口,使用Promise方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 返回值
+
+ | 类型 | 说明 |
+ | ------------------- | ----------------------------------------------- |
+ | Promise<void> | 以Promise形式返回结果,返回当前函数执行的结果。 |
+
+- 示例
+
+ ```
+ let promise = windowClass.destroy();
+ promise.then(()=> {
+ console.info('Succeeded in destroying the window.')
+ }).catch((err)=>{
+ console.error('Failed to destroy the window. Cause: ' + JSON.stringify(err));
+ })
+ ```
+
+### moveTo7+
-## window.isFloatingAbilityWindowVisible7+
+moveTo(x: number, y: number, callback: AsyncCallback<void>): void
-isFloatingAbilityWindowVisible(callback:AsyncCallback<boolean>): void
+移动窗口位置,使用callback方式作为异步方法。
-悬浮窗是否显示可见。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | callback | AsyncCallback<boolean> | 是 | 回调返回一个boolean对象,表示悬浮窗是否可见。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ------------------------- | ---- | --------------------------------------- |
+ | x | number | 是 | 窗口在x轴方向移动的值,值为正表示右移。 |
+ | y | number | 是 | 窗口在y轴方向移动的值,值为正表示下移。 |
+ | callback | AsyncCallback<void> | 是 | 回调函数。 |
- 示例
+
```
- window.isFloatingAbilityWindowVisible( (err, data) => {
+ windowClass.moveTo(300, 300, (err)=>{
if (err) {
- console.error('Failed to check whether the floating window is visible. Cause:' + JSON.stringify(err));
+ console.error('Failed to move the window. Cause:' + JSON.stringify(err));
return;
}
- console.info('Succeeded in checking whether the floating window is visible. Data:' + JSON.stringify(data))
+ console.info('Window moved.');
});
```
+### moveTo7+
-## window.setSplitBarVisibility7+
+moveTo(x: number, y: number): Promise<void>
-setSplitBarVisibility(isVisibility: boolean, callback: AsyncCallback<void>): void
+移动窗口位置,使用Promise方式作为异步方法。
-设置分屏线是否可见。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 说明 |
- | -------- | -------- | -------- |
- | isVisibility | boolean | 表示分屏线是否是否显示,true为显示,false为显示。 |
- | callback | AsyncCallback<void> | callback形式返回结果。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | --------------------------------------- |
+ | x | number | 是 | 窗口在x轴方向移动的值,值为正表示右移。 |
+ | y | number | 是 | 窗口在y轴方向移动的值,值为正表示下移。 |
+
+- 返回值
+
+ | 类型 | 说明 |
+ | ------------------- | ----------------------------------------------- |
+ | Promise<void> | 以Promise形式返回结果,返回当前函数执行的结果。 |
- 示例
+
```
- var isVisibility = false;
- window.setSplitBarVisibility(isVisibility , (err, data) => {
+ let promise = windowClass.moveTo(300, 300);
+ promise.then(()=> {
+ console.info('Window moved.')
+ }).catch((err)=>{
+ console.error('Failed to move the window. Cause: ' + JSON.stringify(err));
+ })
+ ```
+
+### resetSize7+
+
+resetSize(width: number, height: number, callback: AsyncCallback<void>): void
+
+改变当前窗口大小,使用callback方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ------------------------- | ---- | ---------------- |
+ | width | number | 是 | 目标窗口的宽度。 |
+ | height | number | 是 | 目标窗口的高度。 |
+ | callback | AsyncCallback<void> | 是 | 回调函数。 |
+
+- 示例
+
+ ```
+ windowClass.resetSize(500, 1000, (err) => {
if (err) {
- console.error('Failed to set the divider to be invisible. Cause:' + JSON.stringify(err));
+ console.error('Failed to change the window size. Cause:' + JSON.stringify(err));
return;
}
- console.info('Succeeded in setting the divider to be invisible. Data:' + JSON.stringify(data))
+ console.info('Window size changed.');
});
```
+### resetSize7+
-## WindowType7+
+resetSize(width: number, height: number): Promise<void>
-窗口类型。
+改变当前窗口大小,使用Promise方式作为异步方法。
-| 名称 | 默认值 | 说明 |
-| -------- | -------- | -------- |
-| TYPE_APP | 0 | 表示应用窗口。 |
-| TYPE_SYSTEM_ALERT | 1 | 表示系统弹窗。 |
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+- 参数
-## AvoidAreaType7+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ---------------- |
+ | width | number | 是 | 目标窗口的宽度。 |
+ | height | number | 是 | 目标窗口的高度。 |
-窗口内容需要规避区域的类型。
+- 返回值
-| 名称 | 默认值 | 说明 |
-| -------- | -------- | -------- |
-| TYPE_SYSTEM | 0 | 表示系统默认。 |
-| TYPE_CUTOUT | 1 | 表示刘海屏区域。 |
+ | 类型 | 说明 |
+ | ------------------- | ----------------------------------------------- |
+ | Promise<void> | 以Promise形式返回结果,返回当前函数执行的结果。 |
+- 示例
-## WindowMode7+
+ ```
+ let promise = windowClass.resetSize(500, 1000);
+ promise.then(()=> {
+ console.info('Window size changed.')
+ }).catch((err)=>{
+ console.error('Failed to change the window size. Cause: ' + JSON.stringify(err));
+ });
+ ```
-窗口模式。
+### setWindowType7+
-| 名称 | 默认值 | 说明 |
-| -------- | -------- | -------- |
-| UNDEFINED | 1 | 表示APP未定义窗口模式。 |
-| FULLSCREEN | 2 | 表示APP全屏模式。 |
-| PRIMARY | 3 | 表示APP分屏多窗口主要模式。 |
-| SECONDARY | 4 | 表示APP分屏多窗口次要模式。 |
-| FLOATING | 5 | 表示APP自由悬浮形式窗口模式。 |
+setWindowType(type: WindowType, callback: AsyncCallback<void>): void
+设置窗口类型,使用callback方式作为异步方法。
-## splitMode7+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
-分屏模式。
+- 参数
-| 名称 | 默认值 | 说明 |
-| -------- | -------- | -------- |
-| VERTICAL | 0 | 表示垂直上下分屏模式 |
-| HORIZONTAL | 1 | 表示水平左右分屏模式 |
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ------------------------- | ---- | ---------- |
+ | type | [WindowType](#windowtype) | 是 | 窗口类型。 |
+ | callback | AsyncCallback<void> | 是 | 回调函数。 |
+- 示例
-## Window
+ ```
+ var type = window.TYPE_APP;
+ windowClass.setWindowType(type, (err) => {
+ if (err) {
+ console.error('Failed to set the window type. Cause: ' + JSON.stringify(err));
+ return;
+ }
+ console.info('Succeeded in setting the window type.')
+ });
+ ```
+
+### setWindowType7+
+
+setWindowType(type: WindowType): Promise<void>
+
+设置窗口类型,使用Promise方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------------------------- | ---- | ---------- |
+ | type | [WindowType](#windowtype) | 是 | 窗口类型。 |
+
+- 返回值
+
+ | 类型 | 说明 |
+ | ------------------- | ----------------------------------------------- |
+ | Promise<void> | 以Promise形式返回结果,返回当前函数执行的结果。 |
+
+- 示例
-下列API示例中都需使用[getTopWindow()](#window-gettopwindow)先获取到Window实例,再通过此实例调用对应方法。
+ ```
+ var type = window.TYPE_APP;
+ let promise = windowClass.setWindowType(type);
+ promise.then(()=> {
+ console.info('Succeeded in setting the window type.')
+ }).catch((err)=>{
+ console.error('Failed to set the window type. Cause: ' + JSON.stringify(err));
+ });
+ ```
+### getProperties
-### setBrightness
+getProperties(callback: AsyncCallback<WindowProperties>): void
-setBrightness(brightness:number, callback: AsyncCallback<void>): void
+获取当前窗口的属性,使用callback方式作为异步方法返回WindowProperties。
-设置屏幕亮度值。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | brightness | number | 是 | 屏幕亮度值,值为0-1之间。1表示最亮。 |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ---------------------------------------------------------- | ---- | ------------------ |
+ | callback | AsyncCallback<[WindowProperties](#windowproperties)> | 是 | 回调返回窗口属性。 |
- 示例
+
```
- var brightness = 10;
- windowClass.setBrightness(brightness, (err, data) => {
+ windowClass.getProperties((err, data) => {
if (err) {
- console.error('Failed to set the brightness. Cause: ' + JSON.stringify(err));
+ console.error('Failed to obtain the window properties. Cause: ' + JSON.stringify(err));
return;
}
- console.info('Succeeded in setting the brightness. Data: ' + JSON.stringify(data));
+ console.info('Succeeded in obtaining the window properties. Data: ' + JSON.stringify(data));
});
```
+### getProperties
+
+getProperties(): Promise<WindowProperties>
-### setBackgroundColor
+获取当前窗口的属性,使用promise方式作为异步方法返回WindowProperties。
-setBackgroundColor(color: string, callback: AsyncCallback<void>): void
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
-设置窗口的背景色。
+- 返回值
-- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | color | string | 是 | 需要设置的背景色,为16进制颜色,例如"\#00FF00"或"\#FF00FF00"。 |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+ | 类型 | 说明 |
+ | ---------------------------------------------------- | ------------------------------------- |
+ | Promise<[WindowProperties](#windowproperties)> | 以Promise形式返回结果,返回窗口属性。 |
- 示例
+
```
- var color = '#00ff33';
- windowClass.setBackgroundColor(color, (err, data) => {
- if (err) {
- console.error('Failed to set the background color. Cause: ' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in setting the background color. Data: ' + JSON.stringify(data));
- });
+ let promise = windowClass.getProperties();
+ promise.then((data)=> {
+ console.info('Succeeded in obtaining the window properties. Data: ' + JSON.stringify(data))
+ }).catch((err)=>{
+ console.error('Failed to obtain the window properties. Cause: ' + JSON.stringify(err));
+ });
```
-### setTransparent7+
+### getAvoidArea7+
+
+getAvoidArea(type: AvoidAreaType, callback: AsyncCallback<AvoidArea>): void
-setTransparent(isTransparent: boolean, callback: AsyncCallback<void>): void
+获取窗口内容规避的区域,如系统的系统栏区域、凹凸区域。使用callback方式作为异步方法。
-设置窗口是否透明。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | isTransparent | boolean | 是 | 窗口是否透明。 |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
+ | type | [AvoidAreaType](#avoidareatype) | 是 | 表示规避区类型。type为TYPE_SYSTEM,表示系统默认区域。type为TYPE_CUTOUT,表示刘海屏区域。 |
+ | callback | AsyncCallback<[AvoidArea](#avoidarea)> | 是 | 回调返回窗口内容规避区域。 |
- 示例
+
```
- var isTransparent = true;
- windowClass.setTransparent(isTransparent, (err, data) => {
+ var type = window.AvoidAreaType.TYPE_SYSTEM;
+ windowClass.getAvoidArea(type, (err, data) => {
if (err) {
- console.error('Failed to set the window to be transparent. Cause: ' + JSON.stringify(err));
+ console.error('Failed to obtain the area. Cause:' + JSON.stringify(err));
return;
}
- console.info('Succeeded in setting the window to be transparent. Data: ' + JSON.stringify(data))
+ console.info('Succeeded in obtaining the area. Data:' + JSON.stringify(data));
});
```
-### setFullScreen
+### getAvoidArea7+
-setFullScreen(isFullScreen: boolean, callback: AsyncCallback<void>): void
+getAvoidArea(type: AvoidAreaType): Promise<AvoidArea>
-设置是否为全屏状态。
+获取窗口内容规避的区域,如系统的系统栏区域、凹凸区域。使用promise方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | isFullScreen | boolean | 是 | 是否设为全屏状态。 |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------------------------------- | ---- | ------------------------------------------------------------ |
+ | type | [AvoidAreaType](#avoidareatype) | 是 | 表示规避区类型。type为TYPE_SYSTEM,表示系统默认区域。type为TYPE_CUTOUT,表示刘海屏区域。 |
+
+- 返回值
+
+ | 类型 | 说明 |
+ | -------------------------------------- | --------------------------------------------- |
+ | Promise<[AvoidArea](#avoidarea)> | 以Promise形式返回结果,返回窗口内容规避区域。 |
- 示例
+
```
- var isFullScreen = true;
- windowClass.setFullScreen(isFullScreen, (err, data) => {
- if (err) {
- console.error('Failed to enable the full-screen mode. Cause: ' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in enabling the full-screen mode. Data: ' + JSON.stringify(data));
- });
+ let promise = windowClass.getAvoidArea();
+ promise.then((data)=> {
+ console.info('Succeeded in obtaining the area. Data:' + JSON.stringify(data))
+ }).catch((err)=>{
+ console.error('Failed to obtain the area. Cause:' + JSON.stringify(err));
+ });
```
-### setKeepScreenOn
+### setFullScreen
+
+setFullScreen(isFullScreen: boolean, callback: AsyncCallback<void>): void
-setKeepScreenOn(isKeepScreenOn: boolean, callback: AsyncCallback<void>): void
+设置是否为全屏状态,使用callback方式作为异步方法。
-设置屏幕是否为常亮状态。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | isKeepScreenOn | boolean | 是 | 是否设置为屏幕常亮状态。 |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------------ | ------------------------- | ---- | ---------------------------------------------- |
+ | isFullScreen | boolean | 是 | 是否设为全屏状态,且全屏状态隐藏状态栏导航栏。 |
+ | callback | AsyncCallback<void> | 是 | 回调函数。 |
- 示例
+
```
- var isKeepScreenOn = true;
- windowClass.setKeepScreenOn(isKeepScreenOn, (err, data) => {
+ var isFullScreen = true;
+ windowClass.setFullScreen(isFullScreen, (err) => {
if (err) {
- console.error('Failed to set the screen to be always on. Cause: ' + JSON.stringify(err));
+ console.error('Failed to enable the full-screen mode. Cause: ' + JSON.stringify(err));
return;
}
- console.info('Succeeded in setting the screen to be always on. Data: ' + JSON.stringify(data));
+ console.info('Succeeded in enabling the full-screen mode.');
});
```
-### setWindowType7+
-
-setWindowType(type: WindowType, callback: AsyncCallback<void>): void
+### setFullScreen
-设置窗口类型。
+setFullScreen(isFullScreen: boolean): Promise<void>
-- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | type | [WindowType](#windowtype7) | 是 |窗口类型。 |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+设置是否为全屏状态,使用Promise方式作为异步方法。
-- 示例
- ```
- var type = window.TYPE_APP;
- windowClass.setWindowType(type, (err, data) => {
- if (err) {
- console.error('Failed to set the window type. Cause: ' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in setting the window type. Data: ' + JSON.stringify(data))
- });
- ```
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
-### setDimBehind7+
+- 参数
-setDimBehind(dimBehindValue: number, callback: AsyncCallback<void>): void
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------------ | ------- | ---- | ---------------------------------------------- |
+ | isFullScreen | boolean | 是 | 是否设为全屏状态,且全屏状态隐藏状态栏导航栏。 |
-窗口叠加时,设备有子窗口的情况下设置靠后的窗口的暗度值。
+- 返回值
-- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | dimBehindValue | number | 是 | 表示靠后的窗口的暗度值,取值范围为0-1,1表示最暗。 |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+ | 类型 | 说明 |
+ | ------------------- | ----------------------------------------------- |
+ | Promise<void> | 以Promise形式返回结果,返回当前函数执行的结果。 |
- 示例
+
```
- windowClass.setDimBehind(0.5, (err, data) => {
- if (err) {
- console.error('Failed to set the dimness. Cause: ' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in setting the dimness. Data:' + JSON.stringify(data));
+ var isFullScreen = true;
+ let promise = windowClass.setFullScreen(isFullScreen);
+ promise.then(()=> {
+ console.info('Succeeded in enabling the full-screen mode.'))
+ }).catch((err)=>{
+ console.error('Failed to enable the full-screen mode. Cause: ' + JSON.stringify(err));
});
```
@@ -498,121 +980,119 @@ setDimBehind(dimBehindValue: number, callback: AsyncCallback<void>): void
setLayoutFullScreen(isLayoutFullScreen: boolean, callback: AsyncCallback<void>): void
-设置窗口的布局是否为全屏显示状态。
+设置窗口的布局是否为全屏显示状态,使用callback方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | isLayoutFullScreen | boolean | 是 | 窗口的布局是否为全屏显示状态。 |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------------------ | ------------------------- | ---- | ------------------------------------------------------------ |
+ | isLayoutFullScreen | boolean | 是 | 窗口的布局是否为全屏显示状态,且全屏状态下状态栏、导航栏仍然显示。 |
+ | callback | AsyncCallback<void> | 是 | 回调函数。 |
- 示例
+
```
var isLayoutFullScreen= true;
- windowClass.setLayoutFullScreen(isLayoutFullScreen, (err, data) => {
+ windowClass.setLayoutFullScreen(isLayoutFullScreen, (err) => {
if (err) {
console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err));
return;
}
- console.info('Succeeded in setting the window layout to full-screen mode. Data:' + JSON.stringify(data));
+ console.info('Succeeded in setting the window layout to full-screen mode.');
});
```
-### setFocusable7+
-
-setFocusable(isFocusable: boolean, callback: AsyncCallback<void>): void
+### setLayoutFullScreen7+
-设置点击时是否支持切换焦点窗口。
+setLayoutFullScreen(isLayoutFullScreen: boolean): Promise<void>
-- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | isFocusable | boolean | 是 | 点击时是否支持切换焦点窗口。 |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+设置窗口的布局是否为全屏显示状态,使用Promise方式作为异步方法。
-- 示例
- ```
- var isFocusable= true;
- windowClass.setFocusable(isFocusable, (err, data) => {
- if (err) {
- console.error('Failed to set the window to be focusable. Cause:' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in setting the window to be focusable. Data: ' + JSON.stringify(data));
- });
- ```
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
-### setTouchable7+
+- 参数
-setTouchable(isTouchable: boolean, callback: AsyncCallback<void>): void
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------------------ | ------- | ---- | ------------------------------------------------------------ |
+ | isLayoutFullScreen | boolean | 是 | 窗口的布局是否为全屏显示状态,且全屏状态下状态栏、导航栏仍然显示。 |
-设置窗口是否为可触状态。
+- 返回值
-- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | isTouchable | boolean | 是 | 窗口是否为可触状态。 |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+ | 类型 | 说明 |
+ | ------------------- | ----------------------------------------------- |
+ | Promise<void> | 以Promise形式返回结果,返回当前函数执行的结果。 |
- 示例
+
```
- var isTouchable = true;
- windowClass.setTouchable(isTouchable, (err, data) => {
- if (err) {
- console.error('Failed to set the window to be touchable. Cause:' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in setting the window to be touchable. Data:' + JSON.stringify(data));
-
+ var isLayoutFullScreen = true;
+ let promise = windowClass.setLayoutFullScreen(isLayoutFullScreen);
+ promise.then(()=> {
+ console.info('Succeeded in setting the window layout to full-screen mode.'))
+ }).catch((err)=>{
+ console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err));
});
```
-### setPrivacyMode7+
+### setSystemBarEnable7+
+
+setSystemBarEnable(names: Array<'status' | 'navigation'>, callback: AsyncCallback<void>): void
-setPrivacyMode(isPrivacyMode: boolean, callback: AsyncCallback<void>): void
+设置导航栏、状态栏的可见模式,使用callback方式作为异步方法。
-设置窗口是否为隐私模式。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | isPrivacyMode | boolean | 是 | 窗口是否为隐私模式。 |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ------------------------- | ---- | ------------------------------------------------------------ |
+ | names | Array | 是 | 设置状态栏和导航栏是否显示。例如,需全部显示,该参数设置为["status", "navigation"], 不设置,则默认不显示。 |
+ | callback | AsyncCallback<void> | 是 | 回调函数。 |
- 示例
+
```
- var isPrivacyMode = true;
- windowClass.setPrivacyMode(isPrivacyMode, (err, data) => {
+ var names = ["status", "navigation"];
+ windowClass.setSystemBarEnable(names, (err) => {
if (err) {
- console.error('Failed to set the window to privacy mode. Cause:' + JSON.stringify(err));
+ console.error('Failed to set the system bar to be visible. Cause:' + JSON.stringify(err));
return;
}
- console.info('Succeeded in setting the window to privacy mode. Data:' + JSON.stringify(data));
-
+ console.info('Succeeded in setting the system bar to be visible.');
});
```
### setSystemBarEnable7+
-setSystemBarEnable(names: Array, callback: AsyncCallback<void>): void
+setSystemBarEnable(names: Array<'status' | 'navigation'>): Promise<void>
+
+设置导航栏、状态栏的可见模式,使用Promise方式作为异步方法。
-设置导航栏、状态栏的可见模式。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | names | Array | 是 | 设置状态栏和导航栏是否显示。例如,需全部显示,该参数设置为["status", "navigation"]。 |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ----- | ---- | ------------------------------------------------------------ |
+ | names | Array | 是 | 设置状态栏和导航栏是否显示。例如,需全部显示,该参数设置为["status", "navigation"], 不设置,则默认不显示。 |
+
+- 返回值
+
+ | 类型 | 说明 |
+ | ------------------- | ----------------------------------------------- |
+ | Promise<void> | 以Promise形式返回结果,返回当前函数执行的结果。 |
- 示例
+
```
var names = ["status", "navigation"];
- windowClass.setSystemBarEnable(names, (err, data) => {
- if (err) {
- console.error('Failed to set the system bar to be visible. Cause:' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in setting the system bar to be visible. Data: ' + JSON.stringify(data));
+ let promise = windowClass.setSystemBarEnable(names);
+ promise.then(()=> {
+ console.info('Succeeded in setting the system bar to be visible.'))
+ }).catch((err)=>{
+ console.error('Failed to set the system bar to be visible. Cause:' + JSON.stringify(err));
});
```
@@ -620,343 +1100,394 @@ setSystemBarEnable(names: Array, callback: AsyncCallback<void>): void
setSystemBarProperties(systemBarProperties: SystemBarProperties, callback: AsyncCallback<void>): void
-设置窗口内导航条状态栏的属性。
+设置窗口内导航栏、状态栏的属性,使用callback方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | SystemBarProperties | [SystemBarProperties](#systembarproperties) | 是 | 导航条状态栏的属性。 |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------------------- | ------------------------------------------- | ---- | -------------------- |
+ | SystemBarProperties | [SystemBarProperties](#systembarproperties) | 是 | 导航栏状态栏的属性。 |
+ | callback | AsyncCallback<void> | 是 | 回调函数。 |
- 示例
+
```
var SystemBarProperties={
statusBarColor: '#ff00ff',
navigationBarColor: '#00ff00',
//以下两个属性从API Version7开始支持
isStatusBarLightIcon: true,
- isNavigationBarLightIcon:false
+ isNavigationBarLightIcon:false,
+ //以下两个属性从API Version8开始支持
+ statusBarContentColor:'#ffffff'
+ navigationBarContentColor:'#00ffff'
};
- windowClass.setSystemBarProperties(SystemBarProperties, (err, data) => {
+ windowClass.setSystemBarProperties(SystemBarProperties, (err) => {
if (err) {
console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(err));
return;
}
- console.info('Succeeded in setting the system bar properties. Data: ' + JSON.stringify(data));
+ console.info('Succeeded in setting the system bar properties.');
});
```
-### getProperties
+### setSystemBarProperties
-getProperties(callback: AsyncCallback<WindowProperties>): void
+setSystemBarProperties(systemBarProperties: SystemBarProperties): Promise<void>
-获取当前窗口的属性,异步返回WindowProperties。
+设置窗口内导航栏、状态栏的属性,使用Promise方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | callback | AsyncCallback<[WindowProperties](#windowproperties)> | 是 | 回调返回窗口属性。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------------------- | ------------------------------------------- | ---- | -------------------- |
+ | SystemBarProperties | [SystemBarProperties](#systembarproperties) | 是 | 导航栏状态栏的属性。 |
+
+- 返回值
+
+ | 类型 | 说明 |
+ | ------------------- | ----------------------------------------------- |
+ | Promise<void> | 以Promise形式返回结果,返回当前函数执行的结果。 |
- 示例
+
```
- windowClass.getProperties((err, data) => {
- if (err) {
- console.error('Failed to obtain the window properties. Cause: ' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in obtaining the window properties. Data: ' + JSON.stringify(data));
+ var SystemBarProperties={
+ statusBarColor: '#ff00ff',
+ navigationBarColor: '#00ff00',
+ //以下两个属性从API Version7开始支持
+ isStatusBarLightIcon: true,
+ isNavigationBarLightIcon:false,
+ //以下两个属性从API Version8开始支持
+ statusBarContentColor:'#ffffff'
+ navigationBarContentColor:'#00ffff'
+ };
+ let promise = windowClass.setSystemBarProperties(SystemBarProperties);
+ promise.then(()=> {
+ console.info('Succeeded in setting the system bar properties.'))
+ }).catch((err)=>{
+ console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(err));
});
```
-### getAvoidArea7+
+### loadContent8+
-getAvoidArea(type: AvoidAreaType, callback: AsyncCallback<AvoidArea>): void
+loadContent(path: string, storage: ContentStorage, callback: AsyncCallback<void>): void
+
+当前窗口加载具体页面内容,使用callback方式作为异步方法。
-获取窗口内容规避的区域。如系统的系统栏区域 、凹口区域。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | type | [AvoidAreaType](#avoidareatype) | 是 | 表示规避区类型。type为TYPE_SYSTEM,表示系统默认区域。type为TYPE_CUTOUT,表示刘海屏区域。 |
- | callback | AsyncCallback<[AvoidArea](#avoidarea)> | 是 | 回调返回窗口内容规避区域。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ------------------------- | ---- | -------------------- |
+ | path | string | 是 | 设置加载页面的路径。 |
+ | storage | ContentStorage | 否 | 当前应用内的数据。 |
+ | callback | AsyncCallback<void> | 是 | 回调函数。 |
- 示例
+
```
- var type = window.AvoidAreaType.TYPE_SYSTEM;
- windowClass.getAvoidArea(type, (err, data) => {
- if (err) {
- console.error('Failed to obtain the area. Cause:' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in obtaining the area. Data:' + JSON.stringify(data));
+ windowClass.loadContent("pages/page2/page2", (err) => {
+ if (err) {
+ console.error('Failed to load the content. Cause:' + JSON.stringify(err));
+ return;
+ }
+ console.info('Succeeded in loading the content.');
});
```
-### moveTo7+
+### loadContent8+
-moveTo(x: number, y: number, callback: AsyncCallback<void>): void
+loadContent(path: string, storage?: ContentStorage): Promise<void>
+
+当前窗口加载具体页面内容,使用Promise方式作为异步方法。
-窗口位置移动。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | x | number | 是 | 窗口在x轴方向移动的值,值为正表示右移。 |
- | y | number | 是 | 窗口在y轴方向移动的值,值为正表示下移。 |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------- | -------------- | ---- | -------------------- |
+ | path | string | 是 | 设置加载页面的路径。 |
+ | storage | ContentStorage | 否 | 当前应用内的数据。 |
+
+- 返回值
+
+ | 类型 | 说明 |
+ | ------------------- | ----------------------------------------------- |
+ | Promise<void> | 以Promise形式返回结果,返回当前函数执行的结果。 |
- 示例
+
```
- windowClass.moveTo(300, 300, (err, data)=>{
- if (err) {
- console.error('Failed to move the window. Cause:' + JSON.stringify(err));
- return;
- }
- console.info('Window moved. Data:' + JSON.stringify(data));
-
+ let promise = windowClass.loadContent("pages/page2/page2");
+ promise.then(()=> {
+ console.info('Succeeded in loading the content.'))
+ }).catch((err)=>{
+ console.error('Failed to load the content. Cause: ' + JSON.stringify(err));
});
```
-### resetSize7+
+### isShowing7+
-resetSize(width: number, height: number, callback: AsyncCallback<void>): void
+isShowing(callback: AsyncCallback<boolean>): void
+
+判断当前窗口是否已显示,使用callback方式作为异步方法。
-改变当前窗口大小。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | width | number | 是 | 目标窗口的宽度。 |
- | height | number | 是 | 目标窗口的高度。 |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ---------------------------- | ---- | -------------------------------- |
+ | callback | AsyncCallback<boolean> | 是 | 回调函数返回是否显示子窗口结果。 |
- 示例
+
```
- windowClass.resetSize(500, 1000, (err, data) => {
+ windowClass.isShowing((err) => {
if (err) {
- console.error('Failed to change the window size. Cause:' + JSON.stringify(err));
+ console.error('Failed to check whether the window is showing. Cause:' + JSON.stringify(err));
return;
}
- console.info('Window size changed. Data:' + JSON.stringify(data));
+ console.info('Succeeded in checking whether the window is showing. Cause:')
});
```
-### loadContent7+
+### isShowing7+
+
+isShowing(): Promise<boolean>
-loadContent(path: string, callback: AsyncCallback<void>): void
+判断当前窗口是否已显示,使用Promise方式作为异步方法。
-子窗口加载具体页面内容。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
-- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | path | string | 是 | 设置加载页面的代码路径。 |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+- 返回值
+
+ | 类型 | 说明 |
+ | ---------------------- | ----------------------------------------------------- |
+ | Promise<boolean> | 以Promise形式返回结果,返回当前窗口是否已显示的结果。 |
- 示例
+
```
- windowClass.loadContent("pages/page2/page2", (err, data) => {
- if (err) {
- console.error('Failed to load the content. Cause:' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in loading the content. Data:' + JSON.stringify(data));
+ let promise = windowClass.isShowing();
+ promise.then(()=> {
+ console.info('Succeeded in checking whether the window is showing.')
+ }).catch((err)=>{
+ console.error('Failed to check whether the window is showing. Cause: ' + JSON.stringify(err));
});
```
-### hide7+
+### on('windowSizeChange'|'systemAvoidAreaChange')
-hide (callback: AsyncCallback<void>): void
+on(type: 'windowSizeChange'|'systemAvoidAreaChange', callback: Callback<AvoidArea | Size>): void
+
+开启监听。
-隐藏子窗口。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
+ | type | string | 是 | 设置监听类型。 - type为'windowSizeChange'7+ 时表示监听类型为窗口尺寸变化监听; - type为'systemAvoidAreaChange'7+ 时表示监听类型为系统窗口规避区变化监听。 |
+ | callback | Callback<[AvoidArea](#avoidarea) \| [Size](#size)> | 是 | 回调返回监听到的信息。 |
- 示例
+
```
- windowClass.hide((err, data) => {
- if (err) {
- console.error('Failed to hide the subwindow. Cause: ' + JSON.stringify(err));
- return;
- }
- console.info('Subwindow hidden. Data:' + JSON.stringify(data))
- })
+ var type = 'windowSizeChange';
+ windowClass.on(type, (data) => {
+ console.info('Succeeded in enabling the listener for window size changes. Data: ' + JSON.stringify(data));
+ });
```
-### show7+
+### off('windowSizeChange'|'systemAvoidAreaChange')7+
-show(callback: AsyncCallback<void>): void
+off(type: 'windowSizeChange'|'systemAvoidAreaChange', callback?: Callback<AvoidArea | Size >): void
-显示子窗口。
+关闭监听。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
+ | type | string | 是 | 设置监听类型。 - type为'windowSizeChange'7+ 时表示监听类型为窗口尺寸变化监听; - type为'systemAvoidAreaChange'7+ 时表示监听类型为系统窗口规避区变化监听。 |
+ | callback | Callback<[AvoidArea](#avoidarea) \| [Size](#size)> | 否 | 回调返回监听到的信息。 |
- 示例
+
```
- windowClass.show((err, data) => {
- if (err) {
- console.error('Failed to show the subwindow. Cause: ' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in showing the subwindow. Data: ' + JSON.stringify(data))
- })
+ var type = 'windowSizeChange';
+ windowClass.off(type);
```
-### isShowing7+
+### isSupportWideGamut8+
-isShowing(callback: AsyncCallback<boolean>): void
+isSupportWideGamut(callback: AsyncCallback<boolean>): void
-判断子窗口是否已显示。
+判断当前窗口是否支持广色域模式,使用callback方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | callback | AsyncCallback<boolean> | 是 | 回调函数返回是否显示子窗口结果。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ---------------------------- | ---- | -------------------------------- |
+ | callback | AsyncCallback<boolean> | 是 | 回调函数返回是否支持广色域模式。 |
- 示例
+
```
- windowClass.isShowing((err, data) => {
+ windowClass.isSupportWideGamut((err) => {
if (err) {
- console.error('Failed to check whether the subwindow is showing. Cause:' + JSON.stringify(err));
+ console.error('Failed to check whether the window support WideGamut. Cause:' + JSON.stringify(err));
return;
}
- console.info('Succeeded in checking whether the subwindow is showing. Cause:' + JSON.stringify(data))
+ console.info('Succeeded in checking whether the window support WideGamut.')
})
```
-### destroy7+
+### isSupportWideGamut8+
-destroy(callback: AsyncCallback<void>): void
+isSupportWideGamut(): Promise<boolean>
-销毁子窗口。
+判断当前窗口是否支持广色域模式,使用Promise方式作为异步方法。
-- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
+
+- 返回值
+
+ | 类型 | 说明 |
+ | ---------------------- | ------------------------------------------------------------ |
+ | Promise<boolean> | 以Promise形式返回结果,返回当前窗口是否支持广色域模式的结果。 |
- 示例
+
```
- windowClass.destroy((err, data) => {
- if (err) {
- console.error('Failed to destroy the subwindow. Cause:' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in destroying the subwindow. Data:' + JSON.stringify(data))
- })
+ let promise = windowClass.isSupportWideGamut();
+ promise.then(()=> {
+ console.info('Succeeded in checking whether the window support WideGamut.')
+ }).catch((err)=>{
+ console.error('Failed to check whether the window support WideGamut. Cause: ' + JSON.stringify(err));
+ });
```
-### setOutsideTouchable7+
+### setColorSpace8+
-setOutsideTouchable(touchable: boolean, callback: AsyncCallback<void>): void;
+setColorSpace(colorSpace:ColorSpace, callback: AsyncCallback<void>): void
-设置是否允许可点击子窗口以外的区域。
+设置当前窗口为广色域模式或默认色域模式,使用callback方式作为异步方法。
+
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | touchable | boolean | 是 | 设置是否可点击。 |
- | callback | AsyncCallback<void> | 是 | 回调函数。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ---------- | ------------------------- | ---- | ------------ |
+ | colorSpace | [ColorSpace](#colorspace) | 是 | 设置色域模式 |
+ | callback | AsyncCallback<void> | 是 | 回调函数。 |
- 示例
+
```
- windowClass.setOutsideTouchable(true, (err, data) => {
+ windowClass.setColorSpace(window.ColorSpace.WIDE_GAMUT, (err) => {
if (err) {
- console.error('Failed to set the area to be touchable. Cause: ' + JSON.stringify(err));
+ console.error('Failed to set window colorspace. Cause:' + JSON.stringify(err));
return;
}
- console.info('Succeeded in setting the area to be touchable. Data: ' + JSON.stringify(data))
+ console.info('Succeeded in setting window colorspace.')
})
```
-### on('keyboardHeightChange')
+### setColorSpace8+
-on(type: string, callback: AsyncCallback<number>): void
+setColorSpace(colorSpace:ColorSpace): Promise<void>
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 从 API Version 7 开始废弃。
+设置当前窗口为广色域模式或默认色域模式,使用promise方式作为异步方法。
-开启监听键盘高度变化。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | type | string | 是 | 设置监听类型为监听键盘高度变化,应设置type为'keyboardHeightChange'。 |
- | callback | AsyncCallback<number> | 是 | 回调返回监听到的键盘高度。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ---------- | ------------------------- | ---- | ------------ |
+ | colorSpace | [ColorSpace](#colorspace) | 是 | 设置色域模式 |
+
+- 返回值
+
+ | 类型 | 说明 |
+ | ------------------- | ----------------------------------------------- |
+ | Promise<void> | 以Promise形式返回结果,返回当前函数执行的结果。 |
- 示例
+
```
- var type= 'keyboardHeightChange';
- windowClass.on(type, (err, data) => {
- if (err) {
- console.error('Failed to enable the listener for keyboard height changes. Cause: ' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in enabling the listener for keyboard height changes. Data: ' + JSON.stringify(data));
+ let promise = windowClass.isSupportWideGamut(window.ColorSpace.WIDE_GAMUT);
+ promise.then(()=> {
+ console.info('Succeeded in setting window colorspace.')
+ }).catch((err)=>{
+ console.error('Failed to set window colorspacet. Cause: ' + JSON.stringify(err));
});
```
-### off('keyboardHeightChange')
+### getColorSpace8+
-off(type: string, callback?: AsyncCallback<number>): void
+getColorSpace(callback: AsyncCallback<ColorSpace>): void
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 从 API Version 7 开始废弃。
+获取当前窗口色域模式,使用callback方式作为异步方法。
-关闭监听键盘高度变化。
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | type | string | 是 | 设置监听类型为监听键盘高度变化,应设置type为'keyboardHeightChange'。 |
- | callback | AsyncCallback<number> | 否 | 回调返回监听到的键盘高度。 |
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ---------------------------------------------- | ---- | -------------------------- |
+ | callback | AsyncCallback<[ColorSpace](#colorspace)> | 是 | 回调函数返回当前色域模式。 |
- 示例
+
```
- var type= 'keyboardHeightChange';
- windowClass.off(type);
+ windowClass.getColorSpace((err, data) => {
+ if (err) {
+ console.error('Failed to get window color space. Cause:' + JSON.stringify(err));
+ return;
+ }
+ console.info('Succeeded in getting window color space. Cause:' + JSON.stringify(data))
+ })
```
-### on('keyboardHeightChange'|'windowSizeChange'7+ |'systemAvoidAreaChange'7+ )
-
-on(type: string, callback: Callback<AvoidArea | Size | number>): void
-
-开启监听。
-
-- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | type | string | 是 | 设置监听类型。 - type为'keyboardHeightChange'时表示监听类型为键盘高度变化监听; - type为'windowSizeChange'7+时表示监听类型为窗口尺寸变化监听; - type为'systemAvoidAreaChange'7+时表示监听类型为系统窗口规避区变化监听。 |
- | callback | Callback<[AvoidArea](#avoidarea) \| [Size](#size) \| number> | 是 | 回调返回监听到的信息。 |
+### getColorSpace8+
-- 示例
- ```
- var type = 'windowSizeChange';
- windowClass.on(type, (data) => {
- console.info('Succeeded in enabling the listener for window size changes. Data: ' + JSON.stringify(data));
- });
- ```
+getColorSpace(): Promise<ColorSpace>
-### off('keyboardHeightChange'|'windowSizeChange'7+ |'systemAvoidAreaChange'7+ )
+获取当前窗口色域模式,使用Promise方式作为异步方法。
-off(type: string, callback?: Callback<AvoidArea | Size | number>): void
+**系统能力**:SystemCapability.WindowManager.WindowManager.Core
-关闭监听。
+- 返回值
-- 参数
- | 参数名 | 类型 | 必填 | 说明 |
- | -------- | -------- | -------- | -------- |
- | type | string | 是 | 设置监听类型。 - type为'keyboardHeightChange'时表示监听类型为键盘高度变化监听; - type为'windowSizeChange'7+时表示监听类型为窗口尺寸变化监听; - type为'systemAvoidAreaChange'7+时表示监听类型为系统窗口规避区变化监听。 |
- | callback | Callback<[AvoidArea](#avoidarea) \| [Size](#size) \| number> | 否 | 回调返回监听到的信息。 |
+ | 类型 | 说明 |
+ | ---------------------------------------- | ----------------------------------------- |
+ | Promise<[ColorSpace](#colorspace)> | 以Promise形式返回结果,返回当前色域模式。 |
- 示例
+
```
- var type = 'windowSizeChange';
- windowClass.off(type);
+ let promise = windowClass.getColorSpace();
+ promise.then((data)=> {
+ console.info('Succeeded in getting window color space. Cause:' + JSON.stringify(data))
+ }).catch((err)=>{
+ console.error('Failed to set window colorspacet. Cause: ' + JSON.stringify(err));
+ });
```
+
diff --git a/zh-cn/application-dev/reference/arkui-ts/Readme-CN.md b/zh-cn/application-dev/reference/arkui-ts/Readme-CN.md
index 1179c5456049b9cbdc4000c6f93df0ef610f1df6..05e9bf4f3f6ebd547e24a56a61baa90a637785ce 100644
--- a/zh-cn/application-dev/reference/arkui-ts/Readme-CN.md
+++ b/zh-cn/application-dev/reference/arkui-ts/Readme-CN.md
@@ -50,6 +50,8 @@
- 基础组件
- [Blank](ts-basic-components-blank.md)
- [Button](ts-basic-components-button.md)
+ - [Checkbox](ts-basic-components-checkbox.md)
+ - [CheckboxGroup](ts-basic-components-checkboxgroup.md)
- [DataPanel](ts-basic-components-datapanel.md)
- [DatePicker](ts-basic-components-datepicker.md)
- [Divider](ts-basic-components-divider.md)
@@ -130,5 +132,7 @@
- [警告弹窗](ts-methods-alert-dialog-box.md)
- [列表选择弹窗](ts-methods-action-sheet.md)
- [自定义弹窗](ts-methods-custom-dialog-box.md)
+ - [日期时间选择弹窗](ts-methods-datepicker-dialog.md)
+ - [文本选择弹窗](ts-methods-textpicker-dialog.md)
- 附录
- [文档中涉及到的内置枚举值](ts-appendix-enums.md)
diff --git a/zh-cn/application-dev/reference/arkui-ts/figures/checkbox.gif b/zh-cn/application-dev/reference/arkui-ts/figures/checkbox.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6ae7061dcc7106fdd172e4008a4d82cb5568ab44
Binary files /dev/null and b/zh-cn/application-dev/reference/arkui-ts/figures/checkbox.gif differ
diff --git a/zh-cn/application-dev/reference/arkui-ts/figures/checkboxgroup.gif b/zh-cn/application-dev/reference/arkui-ts/figures/checkboxgroup.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5d4c6e059f96d3f021f100ffb7c9899630f982ee
Binary files /dev/null and b/zh-cn/application-dev/reference/arkui-ts/figures/checkboxgroup.gif differ
diff --git a/zh-cn/application-dev/reference/arkui-ts/figures/patternlock.gif b/zh-cn/application-dev/reference/arkui-ts/figures/patternlock.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5fb034ddcf247a1fecaaeb33e27d103bd8225a91
Binary files /dev/null and b/zh-cn/application-dev/reference/arkui-ts/figures/patternlock.gif differ
diff --git a/zh-cn/application-dev/reference/arkui-ts/figures/sidebarcontainer.png b/zh-cn/application-dev/reference/arkui-ts/figures/sidebarcontainer.png
deleted file mode 100644
index 0447567e9bbfa6d46d5e61c810263387ba0aa981..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/reference/arkui-ts/figures/sidebarcontainer.png and /dev/null differ
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-appendix-enums.md b/zh-cn/application-dev/reference/arkui-ts/ts-appendix-enums.md
index a63bdad32971f333d3669a6bab490f0cc05f9da2..597427749af2c3b2e81f4a0981b067b036ca72ce 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-appendix-enums.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-appendix-enums.md
@@ -90,3 +90,11 @@
| Off | 不显示。 |
| On | 常驻显示。 |
| Auto | 按需显示(触摸时显示,2s后消失)。 |
+## LayoutDirection枚举说明
+
+| 名称 | 描述 |
+| -------- | -------- |
+| Row | 主轴与行方向一致作为布局模式。 |
+| Column | 主轴与列方向一致作为布局模式。 |
+| RowReverse | 与Row相反方向进行布局。 |
+| ColumnReverse | 与Column相反方向进行布局。 |
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md
index f77635b380f69bc5cf28bf7cc9b9ecb104009bc0..dfdb99f355e863b8ddce8d8d8bfd785ca8bdcb61 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md
@@ -14,7 +14,7 @@
## 子组件
-可以包含子组件。
+可以包含单个子组件。
## 接口
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkbox.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkbox.md
new file mode 100644
index 0000000000000000000000000000000000000000..9f6fce6df8d37c59fb188599df1ad915917a0b06
--- /dev/null
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkbox.md
@@ -0,0 +1,69 @@
+# Checkbox
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+
+
+提供多选框组件,通常用于某选项的打开或关闭。
+
+## 权限列表
+
+无
+
+## 子组件
+
+无
+
+## 接口
+
+Checkbox( name?: string, group?: string )
+
+- 参数
+ | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+ | --------| --------| ------ | -------- | -------- |
+ | name | string | 否 | - | 多选框名称。 |
+ | group | string | 否 | - | 多选框的群组名称。 |
+
+
+## 属性
+
+
+| 名称 | 参数类型 | 默认值 | 描述 |
+| ------------- | ------- | ------ | -------- |
+| select | bool | false | 设置多选框是否选中。 |
+| selectedColor | Color | - | 设置多选框选中状态颜色。 |
+
+## 事件
+
+| 名称 | 功能描述 |
+| ----------| -------- |
+|onChange(callback: (value: boolean) => void) | 当选中状态发生变化时,触发该回调。 - value为true时,表示已选中。 - value为false时,表示未选中。 |
+
+## 示例
+
+```
+@Entry‘
+@Component
+struct CheckboxExample {
+
+ build() {
+ Row() {
+ Checkbox({name: 'checkbox1', group: 'checkboxGroup'})
+ .select(true)
+ .selectedColor(0xed6f21)
+ .onChange((value: boolean) => {
+ console.info('Checkbox1 change is'+ value)
+ })
+ Checkbox({name: 'checkbox2', group: 'checkboxGroup'})
+ .select(false)
+ .selectedColor(0x39a2db)
+ .onChange((value: boolean) => {
+ console.info('Checkbox2 change is'+ value)
+ })
+ }
+ }
+}
+```
+
+
+![](figures/checkbox.gif)
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkboxgroup.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkboxgroup.md
new file mode 100644
index 0000000000000000000000000000000000000000..f372d73e39685d228562ec83478c189119f5a123
--- /dev/null
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkboxgroup.md
@@ -0,0 +1,87 @@
+# CheckboxGroup
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+
+多选框群组,用于控制多选框全选或者不全选状态。
+
+## 权限列表
+
+无
+
+## 子组件
+
+无
+
+## 接口
+
+CheckboxGroup( group?: string )
+
+创建多选框群组,可以控制群组内的Checkbox全选或者不全选,相同group的Checkbox和CheckboxGroup为同一群组。
+
+- 参数
+ | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+ | -------- | -------- | -------- | -------- | -------- |
+ | group | string | 否 | - | 群组名称。|
+
+
+## 属性
+
+| 名称 | 参数类型 | 默认值 | 描述 |
+| -------- | -------- | -------- | -------- |
+| selectAll | bool | false | 设置是否全选。 |
+| selectedColor | Color | - | 设置被选中或部分选中状态的颜色。 |
+
+## 事件
+
+| 名称 | 功能描述 |
+| -------- | -------- |
+| onChange (callback: (names: Array<string>, status: SelectStatus) => void ) |CheckboxGroup的选中状态或群组内的Checkbox的选中状态发生变化时,触发回调。 - names:群组内所有被选中的多选框名称。 - status:选中状态。|
+
+- SelectStatus枚举说明
+ | 名称 | 描述 |
+ | ----- | -------------------- |
+ | All | 群组多选择框全部选择。 |
+ | Part | 群组多选择框部分选择。 |
+ | None | 群组多选择框全部没有选择。 |
+
+
+## 示例
+
+```
+@Entry
+@Component
+struct CheckboxExample {
+
+ build() {
+ Scroll() {
+ Column() {
+ CheckboxGroup({group : 'checkboxGroup'})
+ .selectedColor(0xed6f21)
+ .onChange((itemName:CheckboxGroupResult) => {
+ console.info("TextPicker::dialogResult is" + JSON.stringify(itemName))
+ })
+ Checkbox({ name: 'checkbox1', group: 'checkboxGroup' })
+ .select(true)
+ .selectedColor(0x39a2db)
+ .onChange((value: boolean) => {
+ console.info('Checkbox1 change is' + value)
+ })
+ Checkbox({ name: 'checkbox2', group: 'checkboxGroup' })
+ .select(false)
+ .selectedColor(0x39a2db)
+ .onChange((value: boolean) => {
+ console.info('Checkbox2 change is' + value)
+ })
+ Checkbox({ name: 'checkbox3', group: 'checkboxGroup' })
+ .select(true)
+ .selectedColor(0x39a2db)
+ .onChange((value: boolean) => {
+ console.info('Checkbox3 change is' + value)
+ })
+ }
+ }
+ }
+}
+```
+![](figures/checkboxgroup.gif)
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-patternlock.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-patternlock.md
new file mode 100644
index 0000000000000000000000000000000000000000..696f156eac486c5ccbbd74bfa1ff0c3551c8af3d
--- /dev/null
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-patternlock.md
@@ -0,0 +1,109 @@
+# PatternLock
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+
+图案密码锁组件,以宫格图案的方式输入密码,用于密码验证。手指触碰图案密码锁时开始进入输入状态,手指离开屏幕时结束输入状态并向应用返回输入的密码。
+
+## 权限列表
+
+无
+
+## 子组件
+
+无
+
+## 接口
+
+PatternLock(controller?: PatternLockController)
+
+- 参数
+
+ | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+ | ---------- | ----------------------------------------------- | ---- | ------ | -------------------------------------------- |
+ | controller | [PatternLockController](#patternlockcontroller) | 否 | null | 给组件绑定一个控制器,用来控制组件状态重置。 |
+
+## 属性
+
+不支持`backgroundColor`以外的通用属性设置。
+
+| 名称 | 参数类型 | 默认值 | 描述 |
+| --------------- | --------------------------------------------------- | ----------- | ------------------------------------------------------------ |
+| sideLength | Length | 300vp | 设置组件的宽度和高度(相同值)。最小可以设置为0。 |
+| circleRadius | Length | 14vp | 设置宫格圆点的半径。 |
+| regularColor | [ResourceColor](../../ui/ts-types.md) | Color.Black | 设置宫格圆点在“未选中”状态的填充颜色。 |
+| selectedColor | [ResourceColor](../../ui/ts-types.md) | Color.Black | 设置宫格圆点在“选中”状态的填充颜色。 |
+| activeColor | [ResourceColor](../../ui/ts-types.md) | Color.Black | 设置宫格圆点在“激活”状态的填充颜色。 |
+| pathColor | [ResourceColor](../../ui/ts-types.md) | Color.Blue | 设置连线的颜色。 |
+| pathStrokeWidth | Length | 34vp | 设置连线的宽度。最小可以设置为0。 |
+| autoReset | boolean | true | 设置是否支持用户在完成输入后再次触屏重置组件状态。如果设置为true,用户可以通过触摸图案密码锁重置组件状态(清除之前的输入效果);如果设置为false,用户手指离开屏幕完成输入后,再次触摸图案密码锁(包括圆点)不能改变之前的输入状态。 |
+
+## 事件
+
+| 名称 | 功能描述 |
+| ------------------------------------------------------------ | ------------------------------------------------------------ |
+| onPatternComplete(callback: (input: Array\) => void) | 密码输入结束时被调用的回调函数。 input: 与选中宫格圆点顺序一致的数字数组,数字为选中宫格的索引(0到8)。 |
+
+## PatternLockController
+
+PatternLock组件的控制器,可以将此对象绑定至PatternLock组件,然后通过它进行状态重置。
+
+### 导入对象
+
+```typescript
+patternLockController: PatternLockController = new PatternLockController()
+```
+
+### reset
+
+reset(): void
+
+重置组件状态。
+
+## 示例
+
+```typescript
+@Entry
+@Component
+struct PatternLockExample {
+ @State passwords: Number[] = []
+ @State message: string = 'please input password'
+ private patternLockController: PatternLockController = new PatternLockController()
+
+ build() {
+ Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
+ Text(this.message).textAlign(TextAlign.Center)
+ PatternLock(this.patternLockController)
+ .sideLength(150)
+ .circleRadius(7)
+ .pathStrokeWidth(17)
+ .backgroundColor(Color.White)
+ .autoReset(true)
+ .onPatternComplete((input: Array) => {
+ if (input == null || input == undefined || input.length < 5) {
+ this.message = 'The password length needs to be greater than 5.'
+ return
+ }
+ if (this.passwords.length > 0) {
+ if (this.passwords.toString() == input.toString()) {
+ this.passwords = input
+ this.message = 'Set password successfully: ' + this.passwords.toString()
+ } else {
+ this.message = 'Inconsistent passwords, please enter again.'
+ }
+ } else {
+ this.passwords = input
+ this.message = "Please enter again."
+ }
+ })
+ Button('reset button').margin(30).onClick(() => {
+ this.patternLockController.reset()
+ this.passwords = []
+ this.message = 'Please input password'
+ })
+ }.width('100%').height('100%')
+ }
+}
+```
+
+![patternlock](figures/patternlock.gif)
+
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md b/zh-cn/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md
index 8aa097feebec90c33481cc229e004cc7b6b7a14b..83b31626aa2cd63a86b4dbc2c71a8d1322b19c1c 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md
@@ -1342,20 +1342,16 @@ ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number
.backgroundColor('#ffff00')
.onReady(() =>{
this.context.beginPath()
- this.context.ellipse(200, 200, 50, 100, Math.PI * 0.25, Math.PI * 0.5, Math.PI, true)
+ this.context.ellipse(200, 200, 50, 100, Math.PI * 0.25, Math.PI * 0.5, Math.PI)
this.context.stroke()
})
- Button('back')
- .onClick(() => {
- router.back()
- })
}
.width('100%')
.height('100%')
}
}
```
-
+
![zh-cn_image_0000001194192440](figures/zh-cn_image_0000001194192440.png)
@@ -1462,17 +1458,13 @@ clip(): void
this.context.fillStyle = "rgb(255,0,0)"
this.context.fillRect(0, 0, 150, 150)
})
- Button('back')
- .onClick(() => {
- router.back()
- })
}
.width('100%')
.height('100%')
}
}
```
-
+
![zh-cn_image_0000001194032462](figures/zh-cn_image_0000001194032462.png)
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-path2d.md b/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-path2d.md
index 9659dda43e23befba5bafb5f4ad867ac6286167c..1b4ec1c571ecc81f73d76a0f4fcc8832ea6892f2 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-path2d.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-path2d.md
@@ -387,7 +387,7 @@ ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number
.height('100%')
.backgroundColor('#ffff00')
.onReady(() =>{
- this.path2Db.ellipse(200, 200, 50, 100, Math.PI * 0.25, Math.PI * 0.5, Math.PI, true)
+ this.path2Db.ellipse(200, 200, 50, 100, Math.PI * 0.25, Math.PI * 0.5, Math.PI)
this.context.stroke(this.path2Db)
})
}
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-column.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-column.md
index 678b35609477b0de471e691af06dae5448919c7e..42bf03f17d543448f2172098b54817a1003d100e 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-container-column.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-column.md
@@ -51,7 +51,8 @@ Column(value:{space?: Length})
@Component
struct ColumnExample {
build() {
- Text('space').fontSize(9).fontColor(0xCCCCCC).width('90%')
+ Column() {
+ Text('space').fontSize(9).fontColor(0xCCCCCC).width('90%')
Column({ space: 5 }) {
Column().width('100%').height(30).backgroundColor(0xAFEEEE)
Column().width('100%').height(30).backgroundColor(0x00FFFF)
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-grid.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-grid.md
index 111c5d38e148a819c89e86bf41553ae499c26d3f..9b757863d61cf2b961ce9540d213313662e67e64 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-container-grid.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-grid.md
@@ -3,8 +3,9 @@
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+网格容器,由“行”和“列”分割的单元格所组成,通过指定“项目”所在的单元格做出各种各样的布局。
+
-网格容器,二维布局,将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以任意组合不同的网格,做出各种各样的布局。
## 权限列表
@@ -17,7 +18,7 @@
包含[GridItem](ts-container-griditem.md)子组件。
-## 接口说明
+## 接口
Grid()
@@ -30,20 +31,29 @@ Grid()
| rowsTemplate | string | '1fr' | 用于设置当前网格布局行的数量,不设置时默认1行 示例, '1fr 1fr 2fr'分三行,将父组件允许的高分为4等份,第一行占1份,第二行占一份,第三行占2份。 |
| columnsGap | Length | 0 | 用于设置列与列的间距。 |
| rowsGap | Length | 0 | 用于设置行与行的间距。 |
-| editMode | boolean | flase | 是否进入编辑模式,进入编辑模式可以拖拽Gird组件内部[GridItem](ts-container-griditem.md)。 |
-| maxCount | number | 1 | 表示可显示的最大行数。 |
-| minCount | number | 1 | 表示可显示的最小行数。 |
-| cellLength | number | 0 | 表示每行的固定高度。 |
-| $multiSelectable^{8+}$ | boolean | false | 是否开启鼠标框选。 - false:关闭框选。 - true:开启框选。 |
+| editMode 8+ | boolean | flase | 是否进入编辑模式,进入编辑模式可以拖拽Gird组件内部[GridItem](ts-container-griditem.md)。 |
+| layoutDirection8+ | [LayoutDirection](ts-appendix-enums.md) | LayoutDirection.Row |设置布局的主轴方向,目前支持的主轴布局方向如下: - LayoutDirection.Row:沿水平方向布局,即先填满一列,再去填下一列。 - LayoutDirection.Column:沿垂直方向布局,即先填满一行,再去填下一行。|
+| maxCount 8+ | number | 1 | 当layoutDirection是Row时,表示可显示的最大行数 当layoutDirection是Column时,表示可显示的最大列数。 |
+| minCount 8+ | number | 1 | 当layoutDirection是Row时,表示可显示的最小行数 当layoutDirection是Column时,表示可显示的最小列数。 |
+| cellLength 8+ | number | 0 | 当layoutDirection是Row时,表示一行的高度 当layoutDirection是Column时,表示一列的宽度。 |
+| multiSelectable8+ | boolean | false | 是否开启鼠标框选。 - false:关闭框选。 - true:开启框选。 |
+| dragAnimation8+ | boolean | false | 是否开启拖拽GridItem动画。 |
+| edgeEffection8+ | EdgeEffect | EdgeEffect.Spring | 设置边缘滑动效果,目前支持的滑动效果参见EdgeEffect枚举说明。 |
+
+- EdgeEffect枚举说明
+ | 名称 | 描述 |
+ | -------- | -------- |
+ | Spring | 弹性物理动效,滑动到边缘后可以根据初始速度或通过触摸事件继续滑动一段距离,松手后回弹。 |
+ | None | 滑动到边缘后无效果。 |
+
## 事件
-| 名称 | 功能描述 |
+| 名称 | 功能描述 |
| -------- | -------- |
| onScrollIndex(first: number) => void | 当前列表显示的起始位置item发生变化时触发。 |
-
## 示例
```
@@ -105,4 +115,4 @@ struct GridExample {
}
```
-![zh-cn_image_0000001219744183](figures/zh-cn_image_0000001219744183.gif)
+![zh-cn_image_0000001219744183](figures/zh-cn_image_0000001219744183.gif)
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-media-components-web.md b/zh-cn/application-dev/reference/arkui-ts/ts-media-components-web.md
index cce4f89bd58a20cf034c96813ba5300fc5ded5ea..c729b54fb4eace90c68b489443cc6e7ca2ebd6da 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-media-components-web.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-media-components-web.md
@@ -1,9 +1,9 @@
# Web
>![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
->该组件从 API Version 8 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+>该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
-提供具有网页显示能力的 Web 组件。
+提供具有网页显示能力的Web组件。
## 权限列表
@@ -17,57 +17,58 @@ ohos.permission.READ_USER_STORAGE
## 接口
-- Web\(options: {src: string, controller?: WebController}\)
+- Web\(options: { src: string, controller?: WebController }\)
- 表1 options 参数说明
+ 表1 options参数说明
- | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
- | ---------- | ------------------------------- | ---- | ------ | -------------- |
- | src | string | 是 | - | 网页资源地址。 |
- | controller | [WebController](#WebController) | 否 | - | 控制器。 |
+ | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+ | ---------- | ------------------------------- | ---- | ---- | ------- |
+ | src | string | 是 | - | 网页资源地址。 |
+ | controller | [WebController](#WebController) | 否 | - | 控制器。 |
> ![icon-note.gif](public_sys-resources/icon-note.gif)**说明:**
>
-> - 一个页面只支持一个 Web 组件,全屏显示,页面中的其他组件会被 Web 组件遮挡;
> - 不支持转场动画;
-> - 只支持加载 rawfile 目录下的 html 文件,不支持远程资源。
+> - 不支持音视频播放;
+> - 不支持横竖屏事件。
## 属性
-| 名称 | 参数类型 | 默认值 | 描述 |
-| ----------------- | ---------------- | ------------------------------------------ | ------------------------------------------------------------ |
-| javaScriptAccess | boolean | true | 是否允许执行 JavaScript 脚本,默认允许执行。 |
-| fileAccess | boolean | true | 启用或禁用 Web 中可通过 file 方式访问应用中的本地文件, 默认启用。 |
-| onlineImageAccess | boolean | true | 是否允许从网络加载图片 资源(通过http和http访问的资源),默认允许访问。 |
-| domStorageAccess | boolean | false | 设置是否开启DOM存储API权限,默认未开启,设置为true时,WebView能够使用DOM storageAPI。 |
-| imageAccess | boolean | true | 设置是否允许自动加载图片资源,默认允许。 |
-| mixedMode | MixedModeContent | MixedModeContent.MIXED_CONTENT_NEVER_ALLOW | 设置是否加载http和https混合内容,默认不允许加载http和https混合内容。 |
-| zoomAccess | boolean | true | 设置是否支持使用屏幕控件或手势进行缩放,默认执行缩放。 |
-| geolocationAccess | boolean | true | 是否允许访问地理位置, 默认允许。 |
+| 名称 | 参数类型 | 默认值 | 描述 |
+| ----------------- | --------- | -------------- | ---------------------------------------- |
+| domStorageAccess | boolean | false | 设置是否开启DOM Storage API权限,默认未开启。 |
+| fileAccess | boolean | true | 设置是否开启Web中通过FILE方式访问应用中的本地文件, 默认启用。 |
+| geolocationAccess | boolean | true | 设置是否允许访问地理位置, 默认允许访问。 |
+| imageAccess | boolean | true | 设置是否允许自动加载图片资源,默认允许。 |
+| javaScriptAccess | boolean | true | 设置是否允许执行JavaScript脚本,默认允许执行。 |
+| mixedMode | MixedMode | MixedMode.None | 设置是否允许加载HTTP和HTTPS混合内容,默认不允许加载HTTP和HTTPS混合内容。 |
+| onlineImageAccess | boolean | true | 设置是否允许从网络加载图片资源(通过HTTP和HTTPS访问的资源),默认允许访问。 |
+| zoomAccess | boolean | true | 设置是否支持使用屏幕控件或手势进行缩放,默认允许执行缩放。 |
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
>
-> 不支持通用属性。
-- MixedModeContent枚举说明
+> 通用属性仅支持width、height、padding、margin、border。
+- MixedMode枚举说明
- | 名称 | 描述 |
- | -------------------------------- | ------------------------------------------------------------ |
- | MIXED_CONTENT_NEVER_ALLOW | 不允许加载http和https混合内容。 |
- | MIXED_CONTENT_ALWAYS_ALLOW | 允许加载http和https混合内容。 |
- | MIXED_CONTENT_COMPATIBILITY_MODE | 混合内容兼容性模式,一些不安全的内容可能被安全来源加载,其他类型的内容将被阻止。 |
+ | 名称 | 描述 |
+ | ---------- | ---------------------------------------- |
+ | All | 允许加载HTTP和HTTPS混合内容。 |
+ | Compatible | 混合内容兼容性模式,一些不安全的内容可能被安全来源加载,其他类型的内容将被阻止。 |
+ | None | 不允许加载HTTP和HTTPS混合内容。 |
## 事件
-不支持通用事件。
+通用事件仅支持onFocus。
-| 名称 | 功能描述 |
-| ------------------------------------------------------------ | ------------------------------------------------------------ |
-| onPageEnd(callback: (event?: { url: string }) => void) | 网页加载结束时触发该回调。 url:Web 引擎返回的 URL。
|
-| onPageBegin(callback: (event?: {url: string }) => void) | 网页加载时触发该回调。 url:Web 引擎返回的 URL。
|
+| 名称 | 功能描述 |
+| ---------------------------------------- | ---------------------------------------- |
+| onDownloadStart(callback: (event?: { url: string, userAgent: string, contentDisposition: string, mimetype: string, contentLength: number }) => void) | 下载开始时触发该回调。 url:Web引擎返回的下载URL。 userAgent:Web引擎返回的用户代理名称。 contentDisposition:Web引擎返回的响应头。 mimetype:Web引擎返回的mimetype信息。 contentLength:Web引擎返回的内容长度。
|
+| onGeolocationHide(callback: () => void) | 调用onGeolocationShow时发出的地理位置权限请求被取消后触发该回调。
|
+| onGeolocationShow(callback: (event?: { origin: string, geolocation: JsGeolocation }) => void) | 应用尝试使用地理位置时触发该回调,并向用户请求权限。 origin:尝试获取地理位置的Web内容的来源。 geolocation:用于请求地理位置权限。
|
+| onPageBegin(callback: (event?: { url: string }) => void) | 网页加载时触发该回调。 url:Web引擎返回的URL。
|
+| onPageEnd(callback: (event?: { url: string }) => void) | 网页加载结束时触发该回调。 url:Web引擎返回的URL。
|
| onProgressChange(callback: (event?: { newProgress: number }) => void) | 网页加载进度变化时触发该回调。 newProgress:加载进度,取值范围为0到100的整数。
|
-| onTitleReceive(callback: (event?: { title: string }) => void) | 网页主页面标题更改时触发该回调。 title:标题内容。
|
-| onGeolocationHide(callback: () => void) | 调用onGeolocationShow()时发出的地理位置权限请求被取消后触发该回调。 开发者可以在该回调中实现隐藏相关UI界面的逻辑。
|
-| onGeolocationShow(callback: (event?: { origin: string, geolocation: JsGeolocation }) => void) | 应用尝试使用地理位置时触发该回调,并向用户请求权限。 -origin:尝试获取地理位置的Web内容的来源。 -geolocation:用于请求地理位置权限。
|
+| onTitleReceive(callback: (event?: { title: string }) => void) | 网页主页面标题更改时触发该回调。 title:标题内容。
|
### JsGeolocation 对象说明
@@ -75,9 +76,9 @@ ohos.permission.READ_USER_STORAGE
- 接口
- | 接口名称 | 功能描述 |
- | ------------------------------------------------------------ | ------------------------------------------------------------ |
- | invoke(origin: string, allow: boolean, retain: boolean): void | 通知系统用户是否批准该应用使用地理位置权限。 -origin:尝试获取地理位置的Web内容的来源。 -allow:用户是否批准该应用使用地理位置权限。true: 允许访问,false: 不允许访问。 -retain:是否允许将地理位置权限状态保存到系统中。true: 允许,false: 不允许。
|
+ | 接口名称 | 功能描述 |
+ | ---------------------------------------- | ---------------------------------------- |
+ | invoke(origin: string, allow: boolean, retain: boolean): void | 通知系统用户是否批准该应用使用地理位置权限。 origin:尝试获取地理位置的Web内容的来源。 allow:用户是否批准该应用使用地理位置权限。true: 允许访问,false: 不允许访问。 retain:是否允许将地理位置权限状态保存到系统中。true: 允许,false: 不允许。
|
## WebController
@@ -89,30 +90,158 @@ Web 组件的控制器。
webController: WebController = new WebController()
```
-### runJavaScript
+### accessBackward
+
+accessBackward(): boolean
+
+当前页面是否可后退。
+
+### accessForward
+
+accessForward(): boolean
+
+当前页面是否可前进。
+
+### accessStep
-runJavaScript(script: string): void
+accessStep(step: number): boolean
-执行 JavaScript 脚本。
+当前页面是否可前进或者后退step步。
- 参数
- | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
- | ------ | ------ | ---- | ---- | -------------- |
- | script | string | 是 | - | JavaScript 脚本。 |
+ | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+ | ---- | ------ | ---- | ---- | --------------------- |
+ | step | number | 是 | - | 要跳转的步数,正数代表前进,负数代表后退。 |
+
+### deleteJavaScriptRegister
+
+deleteJavaScriptRegister(options: { name: string }): void
+
+清空指定对象已注册的JavaScript方法。
+
+- options参数说明
+
+ | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+ | ---- | ------ | ---- | ---- | ----------------------- |
+ | name | string | 是 | - | 注册对象的名称,与HTML中调用的对象名一致。 |
+
+### backward
+
+backward(): void
+
+页面后退。
+
+### forward
+
+forward(): void
+
+页面前进。
+
+### getHitTest
+
+getHitTest(): HitTestType
+
+获取当前已点击的对象类型。
+
+- HitTestType枚举说明
+
+ | 名称 | 描述 |
+ | ------- | -------------------------------- |
+ | Edit | 可编辑的区域。 |
+ | Email | 邮件地址。 |
+ | Http | HTTP网址的HTML \标签。 |
+ | HttpImg | HTTP网址与\ 标签组成的HTML \ 标签。 |
+ | Img | HTML \ 标签。 |
+ | Map | 地图地址。 |
+ | Phone | 电话号码。 |
+ | Unknown | 未知内容。 |
+
+### loadData
+
+loadData(options: { data: string, mimeType: string, encoding: string, baseUrl?: string, historyUrl?: string }): void
+
+加载数据。
+
+- options参数说明
+
+ | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+ | ---------- | ------ | ---- | ---- | ------------------ |
+ | data | string | 是 | - | 需要加载的数据。 |
+ | mimeType | string | 是 | - | 媒体类型,格式为''\*/\*''。 |
+ | encoding | string | 是 | - | 编码类型。 |
+ | baseUrl | string | 否 | - | 基础URL。 |
+ | historyUrl | string | 否 | - | 历史URL。 |
### loadUrl
-loadUrl(url: string): void
+loadUrl(url: string, additionalHttpHeaders?: Array<{ key: string, value: string }>): void
-加载 URL。
+加载URL。
- 参数
- | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
- | ---- | ------ | ---- | ---- | ---------- |
- | url | string | 是 | - | 需要加载的 URL。 |
+ | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+ | --------------------- | ------------------------------------- | ---- | ---- | ---------- |
+ | url | string | 是 | - | 需要加载的 URL。 |
+ | additionalHttpHeaders | Array<{ key: string, value: string }> | 否 | [] | HTTP附加信息。 |
+
+### onActive
+
+onActive(): void
+
+页面重新激活。当Web被重新激活为活跃状态时,执行此方法。
+
+### onInactive
+
+onInactive(): void
+
+页面暂停渲染。当Web被切换到后台不可见状态时,执行此方法。
+
+### refresh
+
+refresh(): void
+
+刷新页面。
+
+### registerJavaScriptProxy
+
+registerJavaScriptProxy(options: { obj: object, name: string, methodList: string[] }): void
+
+将JavaScript对象与方法注册到Web内核,可被已加载的HTML直接调用。注册后,须调用refresh接口生效。
+
+- options 参数说明
+
+ | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+ | ---------- | -------- | ---- | ---- | ----------------------- |
+ | obj | object | 是 | - | 参与注册的对象。 |
+ | name | string | 是 | - | 注册对象的名称,与HTML中调用的对象名一致。 |
+ | methodList | string[] | 是 | - | 参与注册的方法。 |
+
+### runJavaScript
+
+runJavaScript(script: string, callback?: (result: string) => void): void
+
+执行JavaScript脚本。
+
+- 参数
+
+ | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+ | -------- | ------------------------ | ---- | ---- | ------------------------------------ |
+ | script | string | 是 | - | JavaScript脚本。 |
+ | callback | (result: string) => void | 否 | - | 回调执行JavaScript脚本结果,默认result为null字符串。 |
+
+### requestFocus
+
+requestFocus(): void
+
+Web组件获焦。
+
+### stop
+
+stop(): void
+停止页面加载。
## 示例
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-methods-datepicker-dialog.md b/zh-cn/application-dev/reference/arkui-ts/ts-methods-datepicker-dialog.md
new file mode 100644
index 0000000000000000000000000000000000000000..2070b7c7820a33550e2f1e131df61b17a6176c3b
--- /dev/null
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-methods-datepicker-dialog.md
@@ -0,0 +1,196 @@
+# 日期时间滑动选择器弹窗
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+
+根据指定范围的Date创建可以选择时间或者日期的滑动选择器,展示在弹窗上。
+
+## 权限列表
+
+无
+
+## DatePickerDialog.show
+
+show(options?: DatePickerDialogOption)
+
+定义日期时间滑动选择器弹窗并弹出。
+
+- DatePickerDialogOption参数
+ | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+ | -------- | -------- | -------- | -------- | -------- |
+ | start | Date | 否 | Date('1970-1-1') | 指定选择器的起始日期。 |
+ | end | Date | 否 | Date('2100-12-31') | 指定选择器的结束日期。 |
+ | selected | Date | 否 | 当前系统日期或时间 | 当type为DatePickerType.Date时,设置选中项的日期。当type为DatePickerType.Time时,设置选中项的时间。 |
+ | type | [DatePickerType](ts-basic-components-datepicker.md) | 否 | DatePickerType.Date | 指定选择器的类型,包括日期选择器和时间选择器,缺省使用日期选择器。 |
+ | lunar | boolean | 否 | false | 日期是否显示农历。 |
+ | useMilitaryTime | boolean | 否 | false | 展示时间是否为24小时制。 |
+ | onAccept | (value: [DatePickerResult](ts-basic-components-datepicker.md)) => void | 否 | - | 点击弹窗中确定按钮时触发。 |
+ | onCancel | () => void | 否 | - | 点击弹窗中取消按钮时触发。 |
+ | onChange | (value: [DatePickerResult](ts-basic-components-datepicker.md)) => void | 否 | - | 滑动选择器,当前选择项改变时触发。 |
+
+## 示例
+
+### 日期滑动选择器(显示农历)示例
+```
+@Entry
+@Component
+struct DatePickerDialogExample01 {
+ @State isLunar: boolean = true
+ @State isUseMilitaryTime: boolean = false
+ @State datePickerType: DatePickerType = DatePickerType.Date
+ selectedDate: Date = new Date("2000-1-1")
+
+ build() {
+ Flex({direction: FlexDirection.Column, alignItems: ItemAlign.Center,
+ justifyContent: FlexAlign.Center }) {
+ Button("DatePickerDialog").onClick(() => {
+ DatePickerDialog.show({
+ start: new Date("2000-1-1"),
+ end: new Date("2005-1-1"),
+ selected: this.selectedDate,
+ type: this.datePickerType,
+ lunar: this.isLunar,
+ useMilitaryTime: this.isUseMilitaryTime,
+ onAccept: (value: DatePickerResult) => {
+ console.info("DatePickerDialog:onAccept()" + JSON.stringify(value))
+ if (this.datePickerType == DatePickerType.Date) {
+ this.selectedDate.setFullYear(value.year, value.month, value.day)
+ } else if (this.datePickerType == DatePickerType.Time) {
+ this.selectedDate.setHours(value.hour, value.minute, value.second)
+ }
+ },
+ onCancel: () => {
+ console.info("DatePickerDialog:onCancel()")
+ },
+ onChange: (value: DatePickerResult) => {
+ console.info("DatePickerDialog:onChange()" + JSON.stringify(value))
+ }
+ })
+ })
+ }
+ }
+}
+```
+### 日期滑动选择器(不显示农历)示例
+```
+@Entry
+@Component
+struct DatePickerDialogExample02 {
+ @State isLunar: boolean = false
+ @State isUseMilitaryTime: boolean = false
+ @State datePickerType: DatePickerType = DatePickerType.Date
+ selectedDate: Date = new Date("2000-1-1")
+
+ build() {
+ Flex({direction: FlexDirection.Column, alignItems: ItemAlign.Center,
+ justifyContent: FlexAlign.Center }) {
+ Button("DatePickerDialog").onClick(() => {
+ DatePickerDialog.show({
+ start: new Date("2000-1-1"),
+ end: new Date("2005-1-1"),
+ selected: this.selectedDate,
+ type: this.datePickerType,
+ lunar: this.isLunar,
+ useMilitaryTime: this.isUseMilitaryTime,
+ onAccept: (value: DatePickerResult) => {
+ console.info("DatePickerDialog:onAccept()" + JSON.stringify(value))
+ if (this.datePickerType == DatePickerType.Date) {
+ this.selectedDate.setFullYear(value.year, value.month, value.day)
+ } else if (this.datePickerType == DatePickerType.Time) {
+ this.selectedDate.setHours(value.hour, value.minute, value.second)
+ }
+ },
+ onCancel: () => {
+ console.info("DatePickerDialog:onCancel()")
+ },
+ onChange: (value: DatePickerResult) => {
+ console.info("DatePickerDialog:onChange()" + JSON.stringify(value))
+ }
+ })
+ })
+ }
+ }
+}
+```
+### 时间滑动选择器(24小时制)示例
+```
+@Entry
+@Component
+struct DatePickerDialogExample03 {
+ @State isLunar: boolean = false
+ @State isUseMilitaryTime: boolean = true
+ @State datePickerType: DatePickerType = DatePickerType.Time
+ selectedDate: Date = new Date("2000-1-1")
+
+ build() {
+ Flex({direction: FlexDirection.Column, alignItems: ItemAlign.Center,
+ justifyContent: FlexAlign.Center }) {
+ Button("DatePickerDialog").onClick(() => {
+ DatePickerDialog.show({
+ start: new Date("2000-1-1"),
+ end: new Date("2005-1-1"),
+ selected: this.selectedDate,
+ type: this.datePickerType,
+ lunar: this.isLunar,
+ useMilitaryTime: this.isUseMilitaryTime,
+ onAccept: (value: DatePickerResult) => {
+ console.info("DatePickerDialog:onAccept()" + JSON.stringify(value))
+ if (this.datePickerType == DatePickerType.Date) {
+ this.selectedDate.setFullYear(value.year, value.month, value.day)
+ } else if (this.datePickerType == DatePickerType.Time) {
+ this.selectedDate.setHours(value.hour, value.minute, value.second)
+ }
+ },
+ onCancel: () => {
+ console.info("DatePickerDialog:onCancel()")
+ },
+ onChange: (value: DatePickerResult) => {
+ console.info("DatePickerDialog:onChange()" + JSON.stringify(value))
+ }
+ })
+ })
+ }
+ }
+}
+```
+### 时间滑动选择器(12小时制)示例
+```
+@Entry
+@Component
+struct DatePickerDialogExample04 {
+ @State isLunar: boolean = false
+ @State isUseMilitaryTime: boolean = false
+ @State datePickerType: DatePickerType = DatePickerType.Time
+ selectedDate: Date = new Date("2000-1-1")
+
+ build() {
+ Flex({direction: FlexDirection.Column, alignItems: ItemAlign.Center,
+ justifyContent: FlexAlign.Center }) {
+ Button("DatePickerDialog").onClick(() => {
+ DatePickerDialog.show({
+ start: new Date("2000-1-1"),
+ end: new Date("2005-1-1"),
+ selected: this.selectedDate,
+ type: this.datePickerType,
+ lunar: this.isLunar,
+ useMilitaryTime: this.isUseMilitaryTime,
+ onAccept: (value: DatePickerResult) => {
+ console.info("DatePickerDialog:onAccept()" + JSON.stringify(value))
+ if (this.datePickerType == DatePickerType.Date) {
+ this.selectedDate.setFullYear(value.year, value.month, value.day)
+ } else if (this.datePickerType == DatePickerType.Time) {
+ this.selectedDate.setHours(value.hour, value.minute, value.second)
+ }
+ },
+ onCancel: () => {
+ console.info("DatePickerDialog:onCancel()")
+ },
+ onChange: (value: DatePickerResult) => {
+ console.info("DatePickerDialog:onChange()" + JSON.stringify(value))
+ }
+ })
+ })
+ }
+ }
+}
+```
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-methods-textpicker-dialog.md b/zh-cn/application-dev/reference/arkui-ts/ts-methods-textpicker-dialog.md
new file mode 100644
index 0000000000000000000000000000000000000000..5e16350f67e178461c1e7ce57ab38f3e156682bf
--- /dev/null
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-methods-textpicker-dialog.md
@@ -0,0 +1,65 @@
+# 文本滑动选择器弹窗
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
+
+根据指定的选择范围创建文本选择器,展示在弹窗上。
+
+## 权限列表
+
+无
+
+## TextPickerDialog.show
+
+show(options: TextPickerDialogOption)
+
+定义文本滑动选择器弹窗并弹出。
+
+- TextPickerDialogOption参数
+ | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+ | -------- | -------- | -------- | -------- | -------- |
+ | range | string[] | 是 | - | 选择器的数据选择范围。 |
+ | selected | number | 否 | 第一个元素 | 选中项在数组中的index值。 |
+ | defaultPickerItemHeight | number | 否 | - | 默认Picker内容项元素高度。 |
+ | onAccept | (value: TextPickerResult) => void | 否 | - | 点击弹窗中确定按钮时触发。 |
+ | onCancel | () => void | 否 | - | 点击弹窗中取消按钮时触发。 |
+ | onChange | (value: TextPickerResult) => void | 否 | - | 滑动选择器,当前选择项改变时触发。 |
+
+- TextPickerResult对象说明
+ | 名称 | 参数类型 | 描述 |
+ | -------- | -------- | -------- |
+ | value | string | 选中项文本。 |
+ | index | number | 选中项在数组中的index值。 |
+
+## 示例
+
+```
+@Entry
+@Component
+struct TextPickerDialogExample {
+ @State select: number = 1
+ private fruits: string[] = ['apple1', 'orange2', 'peach3', 'grape4']
+
+ build() {
+ Flex({direction: FlexDirection.Column, alignItems: ItemAlign.Center,
+ justifyContent: FlexAlign.Center }) {
+ Button("TextPickerDialog").onClick(() => {
+ TextPickerDialog.show({
+ range: this.fruits,
+ selected: this.select,
+ onAccept: (value: TextPickerResult) => {
+ console.info("TextPickerDialog:onAccept()" + JSON.stringify(value))
+ this.select = value.index
+ },
+ onCancel: () => {
+ console.info("TextPickerDialog:onCancel()")
+ },
+ onChange: (value: TextPickerResult) => {
+ console.info("TextPickerDialog:onChange()" + JSON.stringify(value))
+ }
+ })
+ })
+ }
+ }
+}
+```
diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md b/zh-cn/application-dev/reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md
index 43dddb82795587b63bef2151ea2b607037066a45..95d3ab05e222f3675b0412969ccab5be988b5352 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md
@@ -1424,7 +1424,7 @@ ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number
.backgroundColor('#ffff00')
.onReady(() =>{
this.offContext.beginPath()
- this.offContext.ellipse(200, 200, 50, 100, Math.PI * 0.25, Math.PI * 0.5, Math.PI, true)
+ this.offContext.ellipse(200, 200, 50, 100, Math.PI * 0.25, Math.PI * 0.5, Math.PI)
this.offContext.stroke()
var image = this.offContext.transferToImageBitmap()
this.context.transferFromImageBitmap(image)
diff --git a/zh-cn/application-dev/security/Readme-CN.md b/zh-cn/application-dev/security/Readme-CN.md
index 604a2c0dbfb42236a8525d1e1256940c2bc2311f..57303b1522c8b35de1e69bb73abcb5bfc482e56b 100644
--- a/zh-cn/application-dev/security/Readme-CN.md
+++ b/zh-cn/application-dev/security/Readme-CN.md
@@ -3,5 +3,10 @@
- 用户认证
- [用户认证开发概述](userauth-overview.md)
- [用户认证开发指导](userauth-guidelines.md)
+
+- 密钥管理
+ - [HUKS开发概述](huks-overview.md)
+ - [HUKS开发指导](huks-guidelines.md)
+
- Hap包签名工具
- - [Hap包签名工具开发指南](hapsigntool_guidelines.md)
\ No newline at end of file
+ - [Hap包签名工具开发指导](hapsigntool-guidelines.md)
diff --git a/zh-cn/application-dev/security/hapsigntool-guidelines.md b/zh-cn/application-dev/security/hapsigntool-guidelines.md
index 264b13dbc1746a7fd09ccb86086e72458da68c71..4fe2c34d3df809abfcd41ae4e47eae61d04bb102 100644
--- a/zh-cn/application-dev/security/hapsigntool-guidelines.md
+++ b/zh-cn/application-dev/security/hapsigntool-guidelines.md
@@ -1,4 +1,4 @@
-# Hap包签名工具开发指南
+# Hap包签名工具开发指导
@@ -13,10 +13,10 @@
Hap包签名工具支持本地签名需求的开发,为OpenHarmony应用提供完整性保护和来源管控机制,该签名工具基于PKI公钥证书的机制实现,在进行开发前,开发者应了解以下基本概念:
- 非对称密钥对
- 非对称密钥算法是数据签名/验签的基础,应用签名工具实现生成标准的非对称密钥对(ECC P384/256、RSA2048/3072/4096,用于证书的签发和验证、Profile文件的签名和验签、以及应用包的签名和验签,提供应用的完整性保护机制。
+ 非对称密钥算法是数据签名/验签的基础,应用签名工具实现生成标准的非对称密钥对(ECC P384/256、RSA2048/3072/4096,用于证书的签发和验证、Profile文件的签名和验签、以及应用包的签名和验签,提供应用的完整性保护机制。
- CSR
- CSR(Certificate Signing Request)证书签发请求是生成证书的前提,他包括证书的公钥、证书主题和私钥签名,在申请证书之前,需要先基于密钥对生成CSR,然后提交给CA签发证书。
+ CSR(Certificate Signing Request)证书签发请求是生成证书的前提,他包括证书的公钥、证书主题和私钥签名,在申请证书之前,需要先基于密钥对生成CSR,然后提交给CA签发证书。
- 证书
OpenHarmony采用RFC5280标准构建X509证书信任体系。用于应用签名的OpenHarmony证书按层级可分为:根CA证书、子CA证书、三级实体证书,其中三级实体证书分为应用签名证书和profile签名证书。应用签名证书表示应用开发者的身份,可保证系统上安装的应用来源可追溯,profile签名证书实现对profile文件的签名进行验签,保证profile文件的完整性。
- HAP包
@@ -33,13 +33,13 @@ hap包中的描述文件,该描述文件描述了已授权的证书权限和
## 编译构建
1. 该工具基于Gradle 7.1编译构建,请确认环境已安装配置Gradle环境,并且版本高于或等于7.1。
-
+
```shell
gradle -v
```
2. 下载代码,命令行打开文件目录至developtools_hapsigner/hapsigntool,执行命令进行编译打包。
-
+
```shell
gradle build
```
@@ -74,7 +74,7 @@ OpenHarmony系统内置密钥库文件,文件名称为OpenHarmony.p12,内含
1.输出命令帮助信息
-help # 输出命令帮助信息(不输入参数默认输出命令帮助信息)
-
+
2.输出版本信息
-version # 输出版本信息
@@ -209,7 +209,7 @@ OpenHarmony系统内置密钥库文件,文件名称为OpenHarmony.p12,内含
├── -outFil # 验证结果文件(包含验证结果和profile内容),json格式,可选项;如果不填,则直接输出到控制台
11.hap应用包签名
-
+
sign-app : hap应用包签名
├── -mode # 签名模式,必填项,包括localSign,remoteSign,remoteResign
├── -keyAlias # 密钥别名,必填项
@@ -247,9 +247,9 @@ OpenHarmony系统内置密钥库文件,文件名称为OpenHarmony.p12,内含
子CA证书所在路径:developtools_hapsigner/autosign/result/subCA.cer;
pfofile签名证书路径:developtools_hapsigner/autosign/result/OpenHarmonyProfileRelease.pem。
-
+
**1.生成应用签名证书密钥对
**
-
+
调用密钥对生成接口,生成签名密钥并保存到密钥库。
命令实例:
@@ -259,7 +259,7 @@ java -jar hap-sign-tool.jar generate-keypair -keyAlias "oh-app1-key-v1" -keyAlg
> ![icon-note.gif](../public_sys-resources/icon-note.gif) **说明:**请记录下**keyAlias、keyStorePwd**和**keyPwd**的值,在后续[生成应用签名证书](#生成应用签名证书)和[对Hap包进行签名](#对Hap包进行签名)操作会使用到。
该命令的参数说明:
-
+
generate-keypair : 生成应用签名证书密钥对
├── -keyAlias #用于生成应用签名证书的密钥别名,存于OpenHarmony.p12密钥库文件中,该参数必填
├── -keyAlg #密钥算法,推荐使用ECC,该参数必填
@@ -267,7 +267,7 @@ java -jar hap-sign-tool.jar generate-keypair -keyAlias "oh-app1-key-v1" -keyAlg
├── -keyStoreFile #密钥库文件,推荐使用提供的OpenHarmony.p12密钥库文件,该参数必填
├── -keyStorePwd #密钥库口令,OpenHarmony.p12口令默认为“123456”,必填项
├── -keyPwd #密钥口令,可选项,该参数不填默认生成的密钥对无口令
-
+
**2.生成应用签名证书
**
@@ -353,6 +353,7 @@ java -jar hap-sign-tool.jar sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256
+
## 常见问题
**1.执行[生成应用签名证书](#生成应用签名证书)命令时,控制台打印结果,无文件输出**
diff --git a/zh-cn/application-dev/security/huks-guidelines.md b/zh-cn/application-dev/security/huks-guidelines.md
new file mode 100644
index 0000000000000000000000000000000000000000..3c9f934168a460e02247938e326b6ee4a927fd27
--- /dev/null
+++ b/zh-cn/application-dev/security/huks-guidelines.md
@@ -0,0 +1,140 @@
+# HUKS开发指导
+
+## 场景介绍
+
+ HUKS(OpenHarmony Universal KeyStore,OpenHarmony通用密钥库系统)向应用提供密钥库能力,包括密钥管理及密钥的密码学操作等功能。HUKS所管理的密钥可以由应用导入或者由应用调用HUKS接口生成。
+
+
+## 接口说明
+
+| 接口名 | 描述 |
+| ------------------------------------------------------------ | ---------------- |
+| function generateKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback) : void; | 生成密钥/密钥对 |
+| function generateKey(keyAlias: string, options: HuksOptions) : Promise; | 生成密钥/密钥对 |
+| function exportKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback) : void; | 导出公钥 |
+| function exportKey(keyAlias: string, options: HuksOptions) : Promise; | 导出公钥 |
+| function isKeyExist(keyAlias: string, options: HuksOptions, callback: AsyncCallback) : void; | 查询密钥是否存在 |
+| function isKeyExist(keyAlias: string, options: HuksOptions) : Promise; | 查询密钥是否存在 |
+| function deleteKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback) : void; | 删除密钥 |
+| function deleteKey(keyAlias: string, options: HuksOptions) : Promise; | 删除密钥 |
+
+## 开发步骤
+
+1. 引入HUKS模块
+
+ ```js
+ import huks from '@ohos.security.huks'
+ ```
+
+2. 使用generateKey接口生成密钥对。
+
+ keyAlias为生成的密钥别名,options为生成密钥时使用到的参数,需根据具体需要到的算法设定options中的参数。
+
+ generateKey接口会返回密钥的生成是否成功。
+
+ ```js
+ var alias = 'testAlias';
+ var properties = new Array();
+ properties[0] = {
+ tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
+ value: huks.HuksKeyAlg.HUKS_ALG_ECC
+ };
+ properties[1] = {
+ tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,
+ value: huks.HuksKeySize.HUKS_ECC_KEY_SIZE_224
+ };
+ properties[2] = {
+ tag: huks.HuksTag.HUKS_TAG_PURPOSE,
+ value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_AGREE
+ };
+ properties[3] = {
+ tag: huks.HuksTag.HUKS_TAG_DIGEST,
+ value: huks.HuksKeyDigest.HUKS_DIGEST_NONE
+ };
+ var options = {
+ properties: properties
+ }
+ var resultA = await huks.generateKey(alias, options);
+ ```
+
+3. 使用Init接口进行init操作。
+
+ Alias为初始化密钥的别名,options为初始化密钥用的参数集合,需根据具体需要到的算法设定options中的参数。
+
+ init接口会返回init操作是否成功。
+
+ ```js
+ var alias = 'test001'
+ var properties = new Array();
+ properties[0] = {
+ tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
+ value: huks.HksKeyAlg.HKS_ALG_DH
+ };
+ properties[1] = {
+ tag: huks.HksTag.HKS_TAG_PURPOSE,
+ value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
+ };
+ properties[2] = {
+ tag: huks.HksTag.HKS_TAG_KEY_SIZE
+ value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
+ };
+ var options = {
+ properties: properties
+ };
+ huks.init(alias, options, function (err, data){});
+ ```
+
+4. 使用Update接口进行update操作。
+
+ handle为更新密钥的session id,options为更新密钥用的参数集合,需根据具体需要到的算法设定options中的参数。
+
+ update接口会返回update操作是否成功。
+
+ ```js
+ var properties = new Array();
+ properties[0] = {
+ tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
+ value: huks.HksKeyAlg.HKS_ALG_DH
+ };
+ properties[1] = {
+ tag: huks.HksTag.HKS_TAG_PURPOSE,
+ value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
+ };
+ properties[2] = {
+ tag: huks.HksTag.HKS_TAG_KEY_SIZE
+ value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
+ };
+ var options = {
+ properties: properties
+ };
+ huks.update(handle, options, function (err, data){});
+ ```
+
+5. 使用Finish接口进行finish操作。
+
+ handle为 结束密钥的session id,options为结束密钥用的参数集合,需根据具体需要到的算法设定options中的参数。
+
+ finish接口会返回finish操作是否成功。
+
+ ```js
+ var properties = new Array();
+ properties[0] = {
+ tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
+ value: huks.HksKeyAlg.HKS_ALG_DH
+ };
+ properties[1] = {
+ tag: huks.HksTag.HKS_TAG_PURPOSE,
+ value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
+ };
+ properties[2] = {
+ tag: huks.HksTag.HKS_TAG_KEY_SIZE
+ value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
+ };
+ var options = {
+ properties: properties
+ };
+ huks.finish(handle, options, function (err, data){});
+ ```
+
+
+
diff --git a/zh-cn/application-dev/security/huks-overview.md b/zh-cn/application-dev/security/huks-overview.md
new file mode 100755
index 0000000000000000000000000000000000000000..4f0ee08a09481012c88f0dd009574e9412095714
--- /dev/null
+++ b/zh-cn/application-dev/security/huks-overview.md
@@ -0,0 +1,27 @@
+# HUKS概述
+
+### 功能简介
+
+HUKS(OpenHarmony Universal KeyStore)向应用提供密钥库能力,包括密钥管理及密钥的密码学操作等功能。HUKS所管理的密钥可以由应用导入或者由应用调用HUKS接口生成。
+
+### 基本概念
+
+- HUKS提供密钥管理功能,支持的主要操作包括:加密解密、签名验签、派生协商密钥、计算HMAC(Hash-based Message Authentication Code)。
+- HUKS涉及的算法主要有:AES加密解密、RSA加密解密、RSA签名验签、ECC签名验签、DSA签名验签、ED25519签名验签、PBKDF2派生、DH协商、ECDH协商、X25519协商等。
+- HUKS当前使用的算法库为OpenSSL和mbed TLS。
+
+### 运作机制
+
+HUKS对密钥的使用主要通过Init、Update、Finish操作来实现。
+
+- **Iit操作**:读取密钥,并为其创建Session Id返回给调用者。
+
+- **Udate操作**:根据Init操作获取的Session Id对数据进行分段update处理。
+
+- **Fnish操作**:当所有待处理的数据均传入HUKS后,调用Finish操作完成最终数据处理,释放资源。
+
+ >![](../public_sys-resources/icon-notice.gif) **须知:当Init、Update、Finish操作中的任一阶段发生错误时,都需要调用Abort操作来终止密钥的使用。**
+
+
+### 约束与限制
+不涉及。
\ No newline at end of file
diff --git a/zh-cn/application-dev/ui/ts-component-based-builder.md b/zh-cn/application-dev/ui/ts-component-based-builder.md
index 9bdf0dad957220ed5bab0790681edcef0a14fe30..536ed5d82c625932092a15f50e71d9688ba796d5 100644
--- a/zh-cn/application-dev/ui/ts-component-based-builder.md
+++ b/zh-cn/application-dev/ui/ts-component-based-builder.md
@@ -41,3 +41,93 @@ struct CompA {
}
}
```
+## @BuilderParam8+
+@BuilderParam装饰器用于修饰自定义组件内函数类型的属性(例如:`@BuilderParam content: () => any;`),并且在初始化自定义组件时被@BuilderParam修饰的属性必须赋值。
+
+### 引入动机
+
+当开发者创建自定义组件,想对该组件添加特定功能时(如:仅对自定义组件添加一个点击跳转操作)。若直接在组件内嵌入事件方法,将会导致所有初始化该组件的地方均增加了该功能。为解决此问题,引入了@BuilderParam装饰器,此装饰器修饰的属性值可为@Builder修饰的方法,开发者可在初始化自定义组件时对此属性进行赋值,为自定义组件增加特定的的功能。
+
+### 参数初始化组件
+通过参数初始化组件时,将@Builder装饰的方法赋值给@BuilderParam修饰的属性,并在自定义组件内调用content属性值。
+```
+@Component
+struct CustomContainer {
+ header: string = "";
+ @BuilderParam content: () => any;
+ footer: string = "";
+ build() {
+ Column() {
+ Text(this.header)
+ .fontSize(50)
+ this.content()
+ Text(this.footer)
+ .fontSize(50)
+ }
+ }
+}
+
+@Entry
+@Component
+struct CustomContainerUser {
+ @Builder specificParam(label: string) {
+ Column() {
+ Text(label).fontSize(50)
+ }
+ }
+
+ build() {
+ Column() {
+ CustomContainer({
+ header: "Header",
+ content: this.specificParam("111")
+ footer: "Footer",
+ })
+ }
+ }
+}
+```
+### 尾随闭包初始化组件
+在自定义组件中使用@BuilderParam修饰的属性接收尾随闭包(在初始化自定义组件时,组件名称紧跟一个大括号“{}”形成尾随闭包场景(`CustomComponent(){}`)。开发者可把尾随闭包看做一个容器,向其填充内容,如在闭包内增加组件(`{Column(){Text("content")}`),闭包内语法规范与[build](../ui/ts-function-build.md)一致。此场景下自定义组件内有且仅有一个使用@BuilderParam修饰的属性。
+
+示例:在闭包内增加Column组件并添加点击事件,在新增的Column组件内调用@Builder修饰的specificParam方法,点击Column组件后该改变自定义组件中header的属性值为“changeHeader”。并且在初始化自定义组件时会把尾随闭包的内容赋值给使用@BuilderParam修饰的closer属性。
+```
+@Component
+struct CustomContainer {
+ header: string = "";
+ @BuilderParam closer: () => any;
+ build() {
+ Column() {
+ Text(this.header)
+ .fontSize(50)
+ this.closer()
+ }
+ }
+}
+@Builder function specificParam(label1: string, label2: string) {
+ Column() {
+ Text(label1)
+ .fontSize(50)
+ Text(label2)
+ .fontSize(50)
+ }
+}
+@Entry
+@Component
+struct CustomContainerUser {
+ @State text: string = "header"
+ build() {
+ Column() {
+ CustomContainer({
+ header: this.text,
+ }){
+ Column(){
+ specificParam("111", "22")
+ }.onClick(()=>{
+ this.text = "changeHeader"
+ })
+ }
+ }
+ }
+}
+```
diff --git a/zh-cn/application-dev/webgl/Readme-CN.md b/zh-cn/application-dev/webgl/Readme-CN.md
new file mode 100644
index 0000000000000000000000000000000000000000..89d715d5a45a30e3a78c76937f835d89d2527549
--- /dev/null
+++ b/zh-cn/application-dev/webgl/Readme-CN.md
@@ -0,0 +1,4 @@
+# WebGL
+
+- [概述](webgl-overview.md)
+- [WebGL开发指导](webgl-guidelines.md)
diff --git a/zh-cn/application-dev/webgl/figures/zh-cn_image_0000001192269746.gif b/zh-cn/application-dev/webgl/figures/zh-cn_image_0000001192269746.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e4c7ed66998e8c6b4b87c587edb5986cc547d9dc
Binary files /dev/null and b/zh-cn/application-dev/webgl/figures/zh-cn_image_0000001192269746.gif differ
diff --git a/zh-cn/application-dev/webgl/figures/zh-cn_image_0000001192429306.gif b/zh-cn/application-dev/webgl/figures/zh-cn_image_0000001192429306.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2297841f49ed784fbe4ecd131df8965202e1c14c
Binary files /dev/null and b/zh-cn/application-dev/webgl/figures/zh-cn_image_0000001192429306.gif differ
diff --git a/zh-cn/application-dev/webgl/figures/zh-cn_image_0000001238544451.png b/zh-cn/application-dev/webgl/figures/zh-cn_image_0000001238544451.png
new file mode 100644
index 0000000000000000000000000000000000000000..007ac6263648c83671d4b085cfc9103f6391be6d
Binary files /dev/null and b/zh-cn/application-dev/webgl/figures/zh-cn_image_0000001238544451.png differ
diff --git a/zh-cn/application-dev/webgl/public_sys-resources/icon-caution.gif b/zh-cn/application-dev/webgl/public_sys-resources/icon-caution.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571
Binary files /dev/null and b/zh-cn/application-dev/webgl/public_sys-resources/icon-caution.gif differ
diff --git a/zh-cn/application-dev/webgl/public_sys-resources/icon-danger.gif b/zh-cn/application-dev/webgl/public_sys-resources/icon-danger.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571
Binary files /dev/null and b/zh-cn/application-dev/webgl/public_sys-resources/icon-danger.gif differ
diff --git a/zh-cn/application-dev/webgl/public_sys-resources/icon-note.gif b/zh-cn/application-dev/webgl/public_sys-resources/icon-note.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6314297e45c1de184204098efd4814d6dc8b1cda
Binary files /dev/null and b/zh-cn/application-dev/webgl/public_sys-resources/icon-note.gif differ
diff --git a/zh-cn/application-dev/webgl/public_sys-resources/icon-notice.gif b/zh-cn/application-dev/webgl/public_sys-resources/icon-notice.gif
new file mode 100644
index 0000000000000000000000000000000000000000..86024f61b691400bea99e5b1f506d9d9aef36e27
Binary files /dev/null and b/zh-cn/application-dev/webgl/public_sys-resources/icon-notice.gif differ
diff --git a/zh-cn/application-dev/webgl/public_sys-resources/icon-tip.gif b/zh-cn/application-dev/webgl/public_sys-resources/icon-tip.gif
new file mode 100644
index 0000000000000000000000000000000000000000..93aa72053b510e456b149f36a0972703ea9999b7
Binary files /dev/null and b/zh-cn/application-dev/webgl/public_sys-resources/icon-tip.gif differ
diff --git a/zh-cn/application-dev/webgl/public_sys-resources/icon-warning.gif b/zh-cn/application-dev/webgl/public_sys-resources/icon-warning.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6e90d7cfc2193e39e10bb58c38d01a23f045d571
Binary files /dev/null and b/zh-cn/application-dev/webgl/public_sys-resources/icon-warning.gif differ
diff --git a/zh-cn/application-dev/webgl/webgl-guidelines.md b/zh-cn/application-dev/webgl/webgl-guidelines.md
new file mode 100644
index 0000000000000000000000000000000000000000..6495b6aeb122781b25d4fdeb25e41327399c43bd
--- /dev/null
+++ b/zh-cn/application-dev/webgl/webgl-guidelines.md
@@ -0,0 +1,708 @@
+# WebGL开发指导
+
+## 场景介绍
+
+WebGL主要帮助开发者在前端开发中完成图形图像的相关处理,比如绘制彩色图形等。
+
+
+## 接口说明
+
+使用WebGL开放能力需导入模块:
+
+```
+import webgl from "@ohos.webglnapi";
+```
+
+**表1** WebGL主要接口列表
+
+| 接口名 | 描述 |
+| -------- | -------- |
+| canvas.getContext | 获取canvas对象上下文。 |
+| webgl.createBuffer(): WebGLBuffer \| null | 创建与初始化WebGL数据缓冲区。 |
+| webgl.bindBuffer(target: GLenum, buffer: WebGLBuffer \| null): void | 将WebGL数据缓冲区与目标进行绑定。 |
+| webgl.bufferData(target: GLenum, srcData: ArrayBufferView, usage: GLenum, srcOffset: GLuint, length?: GLuint): void | 创建并初始化WebGL的数据存储区。 |
+| webgl.getAttribLocation(program: WebGLProgram, name: string): GLint | 从给定WebGL着色程序中获取着色器中attribute变量的地址。 |
+| webgl.vertexAttribPointer(index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, offset: GLintptr): void | 将缓冲区对象分配给变量。 |
+| webgl.enableVertexAttribArray(index: GLuint): void | 连接变量与分配给它的缓冲区对象。 |
+| webgl.clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void | 清空<canvas>指定的颜色。 |
+| webgl.clear(mask: GLbitfield): void | 清空<canvas>。 |
+| webgl.drawArrays(mode: GLenum, first: GLint, count: GLsizei): void | 执行数据绘制。 |
+| webgl.flush(): void | 刷新数据至GPU,清空缓冲区。 |
+| webgl.createProgram(): WebGLProgram \| null | 创建着色器程序对象。 |
+
+
+## 开发步骤
+
+以下分别展示无着色器绘制2D图形和着色器绘制彩色三角形的两个场景示例及开发过程。
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
+> 使用WebGL开发时,为保证界面图形显示效果,请使用真机运行。
+
+
+### 无着色器绘制2D图形
+
+此场景为未使用WebGL绘制的2D图形(CPU绘制非GPU绘制)。开发示例如下:
+
+1. 创建页面布局。index.hml示例如下:
+ ```
+
+
+ BtnDraw2D
+
+ ```
+
+2. 设置页面样式。index.css示例如下:
+ ```
+ .container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ }
+ .btn-button {
+ margin: 1px;
+ height: 40px;
+ width: 220px;
+ background-color: lightblue;
+ font-size: 20px;
+ text-color: blue;
+ }
+ ```
+
+3. 编辑JavaScript代码文件,增加2D绘制逻辑代码。index.js示例如下:
+ ```
+ //index.js
+ export default {//NAPI交互代码
+ data: {
+ title: "DEMO BY TEAMOL",
+ fit:"cover",
+ fits: ["cover", "contain", "fill", "none", "scale-down"]
+ },
+ onInit() {
+ this.title = this.$t('strings.world');
+ },
+ BtnDraw2D(){
+ // 获取canvas元素
+ const canvas = this.$refs.canvas1;
+ // 获取2D上下文
+ const ctx = canvas.getContext('2d');
+
+ //执行CPU绘制函数
+ // Set line width
+ ctx.lineWidth = 10;
+ // Wall
+ ctx.strokeRect(75, 140, 150, 110);
+ // Door
+ ctx.fillRect(130, 190, 40, 60);
+ // Roof
+ ctx.beginPath();
+ ctx.moveTo(50, 140);
+ ctx.lineTo(150, 60);
+ ctx.lineTo(250, 140);
+ ctx.closePath();
+ ctx.stroke();
+ }
+ }
+ ```
+
+**图1** 点击按钮绘制2D图形的效果图
+
+![zh-cn_image_0000001192269746](figures/zh-cn_image_0000001192269746.gif)
+
+
+### 着色器绘制彩色三角形
+
+此场景为使用WebGL绘制的彩色三角形图形(GPU绘制)。开发示例如下:
+
+
+1. 创建页面布局。index.hml示例如下:
+ ```
+
+
+ BtnColorTriangle
+
+ ```
+
+2. 设置页面样式。index.css示例如下:
+ ```
+ .container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ }
+ .btn-button {
+ margin: 1px;
+ height: 40px;
+ width: 220px;
+ background-color: lightblue;
+ font-size: 20px;
+ text-color: blue;
+ }
+ ```
+
+3. 编辑JavaScript代码文件,增加彩色三角形绘制逻辑代码。index.js示例如下:
+ ```
+ //index.js
+ import webgl from "@ohos.webglnapi";//导入WebGL模块
+
+ //WebGL相关预定义
+ var gl = {
+ DEPTH_BUFFER_BIT: 0x00000100,
+ STENCIL_BUFFER_BIT: 0x00000400,
+ COLOR_BUFFER_BIT: 0x00004000,
+ POINTS: 0x0000,
+ LINES: 0x0001,
+ LINE_LOOP: 0x0002,
+ LINE_STRIP: 0x0003,
+ TRIANGLES: 0x0004,
+ TRIANGLE_STRIP: 0x0005,
+ TRIANGLE_FAN: 0x0006,
+ ZERO: 0,
+ ONE: 1,
+ SRC_COLOR: 0x0300,
+ ONE_MINUS_SRC_COLOR: 0x0301,
+ SRC_ALPHA: 0x0302,
+ ONE_MINUS_SRC_ALPHA: 0x0303,
+ DST_ALPHA: 0x0304,
+ ONE_MINUS_DST_ALPHA: 0x0305,
+ DST_COLOR: 0x0306,
+ ONE_MINUS_DST_COLOR: 0x0307,
+ SRC_ALPHA_SATURATE: 0x0308,
+ FUNC_ADD: 0x8006,
+ BLEND_EQUATION: 0x8009,
+ BLEND_EQUATION_RGB: 0x8009,
+ BLEND_EQUATION_ALPHA: 0x883D,
+ FUNC_SUBTRACT: 0x800A,
+ FUNC_REVERSE_SUBTRACT: 0x800B,
+ BLEND_DST_RGB: 0x80C8,
+ BLEND_SRC_RGB: 0x80C9,
+ BLEND_DST_ALPHA: 0x80CA,
+ BLEND_SRC_ALPHA: 0x80CB,
+ CONSTANT_COLOR: 0x8001,
+ ONE_MINUS_CONSTANT_COLOR: 0x8002,
+ CONSTANT_ALPHA: 0x8003,
+ ONE_MINUS_CONSTANT_ALPHA: 0x8004,
+ BLEND_COLOR: 0x8005,
+ ARRAY_BUFFER: 0x8892,
+ ELEMENT_ARRAY_BUFFER: 0x8893,
+ ARRAY_BUFFER_BINDING: 0x8894,
+ ELEMENT_ARRAY_BUFFER_BINDING: 0x8895,
+ STREAM_DRAW: 0x88E0,
+ STATIC_DRAW: 0x88E4,
+ DYNAMIC_DRAW: 0x88E8,
+ BUFFER_SIZE: 0x8764,
+ BUFFER_USAGE: 0x8765,
+ CURRENT_VERTEX_ATTRIB: 0x8626,
+ FRONT: 0x0404,
+ BACK: 0x0405,
+ FRONT_AND_BACK: 0x0408,
+ CULL_FACE: 0x0B44,
+ BLEND: 0x0BE2,
+ DITHER: 0x0BD0,
+ STENCIL_TEST: 0x0B90,
+ DEPTH_TEST: 0x0B71,
+ SCISSOR_TEST: 0x0C11,
+ POLYGON_OFFSET_FILL: 0x8037,
+ SAMPLE_ALPHA_TO_COVERAGE: 0x809E,
+ SAMPLE_COVERAGE: 0x80A0,
+ NO_ERROR: 0,
+ INVALID_ENUM: 0x0500,
+ INVALID_VALUE: 0x0501,
+ INVALID_OPERATION: 0x0502,
+ OUT_OF_MEMORY: 0x0505,
+ CW: 0x0900,
+ CCW: 0x0901,
+ LINE_WIDTH: 0x0B21,
+ ALIASED_POINT_SIZE_RANGE: 0x846D,
+ ALIASED_LINE_WIDTH_RANGE: 0x846E,
+ CULL_FACE_MODE: 0x0B45,
+ FRONT_FACE: 0x0B46,
+ DEPTH_RANGE: 0x0B70,
+ DEPTH_WRITEMASK: 0x0B72,
+ DEPTH_CLEAR_VALUE: 0x0B73,
+ DEPTH_FUNC: 0x0B74,
+ STENCIL_CLEAR_VALUE: 0x0B91,
+ STENCIL_FUNC: 0x0B92,
+ STENCIL_FAIL: 0x0B94,
+ STENCIL_PASS_DEPTH_FAIL: 0x0B95,
+ STENCIL_PASS_DEPTH_PASS: 0x0B96,
+ STENCIL_REF: 0x0B97,
+ STENCIL_VALUE_MASK: 0x0B93,
+ STENCIL_WRITEMASK: 0x0B98,
+ STENCIL_BACK_FUNC: 0x8800,
+ STENCIL_BACK_FAIL: 0x8801,
+ STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802,
+ STENCIL_BACK_PASS_DEPTH_PASS: 0x8803,
+ STENCIL_BACK_REF: 0x8CA3,
+ STENCIL_BACK_VALUE_MASK: 0x8CA4,
+ STENCIL_BACK_WRITEMASK: 0x8CA5,
+ VIEWPORT: 0x0BA2,
+ SCISSOR_BOX: 0x0C10,
+ COLOR_CLEAR_VALUE: 0x0C22,
+ COLOR_WRITEMASK: 0x0C23,
+ UNPACK_ALIGNMENT: 0x0CF5,
+ PACK_ALIGNMENT: 0x0D05,
+ MAX_TEXTURE_SIZE: 0x0D33,
+ MAX_VIEWPORT_DIMS: 0x0D3A,
+ SUBPIXEL_BITS: 0x0D50,
+ RED_BITS: 0x0D52,
+ GREEN_BITS: 0x0D53,
+ BLUE_BITS: 0x0D54,
+ ALPHA_BITS: 0x0D55,
+ DEPTH_BITS: 0x0D56,
+ STENCIL_BITS: 0x0D57,
+ POLYGON_OFFSET_UNITS: 0x2A00,
+ POLYGON_OFFSET_FACTOR: 0x8038,
+ TEXTURE_BINDING_2D: 0x8069,
+ SAMPLE_BUFFERS: 0x80A8,
+ SAMPLES: 0x80A9,
+ RGBA8: 0x8058,
+ SAMPLE_COVERAGE_VALUE: 0x80AA,
+ SAMPLE_COVERAGE_INVERT: 0x80AB,
+ COMPRESSED_TEXTURE_FORMATS: 0x86A3,
+ DONT_CARE: 0x1100,
+ FASTEST: 0x1101,
+ NICEST: 0x1102,
+ GENERATE_MIPMAP_HINT: 0x8192,
+ BYTE: 0x1400,
+ UNSIGNED_BYTE: 0x1401,
+ SHORT: 0x1402,
+ UNSIGNED_SHORT: 0x1403,
+ INT: 0x1404,
+ UNSIGNED_INT: 0x1405,
+ FLOAT: 0x1406,
+ DEPTH_COMPONENT: 0x1902,
+ ALPHA: 0x1906,
+ RGB: 0x1907,
+ RGBA: 0x1908,
+ LUMINANCE: 0x1909,
+ LUMINANCE_ALPHA: 0x190A,
+ UNSIGNED_SHORT_4_4_4_4: 0x8033,
+ UNSIGNED_SHORT_5_5_5_1: 0x8034,
+ UNSIGNED_SHORT_5_6_5: 0x8363,
+ FRAGMENT_SHADER: 0x8B30,
+ VERTEX_SHADER: 0x8B31,
+ MAX_VERTEX_ATTRIBS: 0x8869,
+ MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB,
+ MAX_VARYING_VECTORS: 0x8DFC,
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D,
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C,
+ MAX_TEXTURE_IMAGE_UNITS: 0x8872,
+ MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD,
+ SHADER_TYPE: 0x8B4F,
+ DELETE_STATUS: 0x8B80,
+ LINK_STATUS: 0x8B82,
+ VALIDATE_STATUS: 0x8B83,
+ ATTACHED_SHADERS: 0x8B85,
+ ACTIVE_UNIFORMS: 0x8B86,
+ ACTIVE_ATTRIBUTES: 0x8B89,
+ SHADING_LANGUAGE_VERSION: 0x8B8C,
+ CURRENT_PROGRAM: 0x8B8D,
+ NEVER: 0x0200,
+ LESS: 0x0201,
+ EQUAL: 0x0202,
+ LEQUAL: 0x0203,
+ GREATER: 0x0204,
+ NOTEQUAL: 0x0205,
+ GEQUAL: 0x0206,
+ ALWAYS: 0x0207,
+ KEEP: 0x1E00,
+ REPLACE: 0x1E01,
+ INCR: 0x1E02,
+ DECR: 0x1E03,
+ INVERT: 0x150A,
+ INCR_WRAP: 0x8507,
+ DECR_WRAP: 0x8508,
+ VENDOR: 0x1F00,
+ RENDERER: 0x1F01,
+ VERSION: 0x1F02,
+ NEAREST: 0x2600,
+ LINEAR: 0x2601,
+ NEAREST_MIPMAP_NEAREST: 0x2700,
+ LINEAR_MIPMAP_NEAREST: 0x2701,
+ NEAREST_MIPMAP_LINEAR: 0x2702,
+ LINEAR_MIPMAP_LINEAR: 0x2703,
+ TEXTURE_MAG_FILTER: 0x2800,
+ TEXTURE_MIN_FILTER: 0x2801,
+ TEXTURE_WRAP_S: 0x2802,
+ TEXTURE_WRAP_T: 0x2803,
+ TEXTURE_2D: 0x0DE1,
+ TEXTURE: 0x1702,
+ TEXTURE_CUBE_MAP: 0x8513,
+ TEXTURE_BINDING_CUBE_MAP: 0x8514,
+ TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515,
+ TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516,
+ TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517,
+ TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518,
+ TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519,
+ TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A,
+ MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C,
+ TEXTURE0: 0x84C0,
+ TEXTURE1: 0x84C1,
+ TEXTURE2: 0x84C2,
+ TEXTURE3: 0x84C3,
+ TEXTURE4: 0x84C4,
+ TEXTURE5: 0x84C5,
+ TEXTURE6: 0x84C6,
+ TEXTURE7: 0x84C7,
+ TEXTURE8: 0x84C8,
+ TEXTURE9: 0x84C9,
+ TEXTURE10: 0x84CA,
+ TEXTURE11: 0x84CB,
+ TEXTURE12: 0x84CC,
+ TEXTURE13: 0x84CD,
+ TEXTURE14: 0x84CE,
+ TEXTURE15: 0x84CF,
+ TEXTURE16: 0x84D0,
+ TEXTURE17: 0x84D1,
+ TEXTURE18: 0x84D2,
+ TEXTURE19: 0x84D3,
+ TEXTURE20: 0x84D4,
+ TEXTURE21: 0x84D5,
+ TEXTURE22: 0x84D6,
+ TEXTURE23: 0x84D7,
+ TEXTURE24: 0x84D8,
+ TEXTURE25: 0x84D9,
+ TEXTURE26: 0x84DA,
+ TEXTURE27: 0x84DB,
+ TEXTURE28: 0x84DC,
+ TEXTURE29: 0x84DD,
+ TEXTURE30: 0x84DE,
+ TEXTURE31: 0x84DF,
+ ACTIVE_TEXTURE: 0x84E0,
+ REPEAT: 0x2901,
+ CLAMP_TO_EDGE: 0x812F,
+ MIRRORED_REPEAT: 0x8370,
+ FLOAT_VEC2: 0x8B50,
+ FLOAT_VEC3: 0x8B51,
+ FLOAT_VEC4: 0x8B52,
+ INT_VEC2: 0x8B53,
+ INT_VEC3: 0x8B54,
+ INT_VEC4: 0x8B55,
+ BOOL: 0x8B56,
+ BOOL_VEC2: 0x8B57,
+ BOOL_VEC3: 0x8B58,
+ BOOL_VEC4: 0x8B59,
+ FLOAT_MAT2: 0x8B5A,
+ FLOAT_MAT3: 0x8B5B,
+ FLOAT_MAT4: 0x8B5C,
+ SAMPLER_2D: 0x8B5E,
+ SAMPLER_CUBE: 0x8B60,
+ VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622,
+ VERTEX_ATTRIB_ARRAY_SIZE: 0x8623,
+ VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624,
+ VERTEX_ATTRIB_ARRAY_TYPE: 0x8625,
+ VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A,
+ VERTEX_ATTRIB_ARRAY_POINTER: 0x8645,
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F,
+ IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A,
+ IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B,
+ COMPILE_STATUS: 0x8B81,
+ LOW_FLOAT: 0x8DF0,
+ MEDIUM_FLOAT: 0x8DF1,
+ HIGH_FLOAT: 0x8DF2,
+ LOW_INT: 0x8DF3,
+ MEDIUM_INT: 0x8DF4,
+ HIGH_INT: 0x8DF5,
+ FRAMEBUFFER: 0x8D40,
+ RENDERBUFFER: 0x8D41,
+ RGBA4: 0x8056,
+ RGB5_A1: 0x8057,
+ RGB565: 0x8D62,
+ DEPTH_COMPONENT16: 0x81A5,
+ STENCIL_INDEX8: 0x8D48,
+ DEPTH_STENCIL: 0x84F9,
+ RENDERBUFFER_WIDTH: 0x8D42,
+ RENDERBUFFER_HEIGHT: 0x8D43,
+ RENDERBUFFER_INTERNAL_FORMAT: 0x8D44,
+ RENDERBUFFER_RED_SIZE: 0x8D50,
+ RENDERBUFFER_GREEN_SIZE: 0x8D51,
+ RENDERBUFFER_BLUE_SIZE: 0x8D52,
+ RENDERBUFFER_ALPHA_SIZE: 0x8D53,
+ RENDERBUFFER_DEPTH_SIZE: 0x8D54,
+ RENDERBUFFER_STENCIL_SIZE: 0x8D55,
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0,
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1,
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2,
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3,
+ COLOR_ATTACHMENT0: 0x8CE0,
+ DEPTH_ATTACHMENT: 0x8D00,
+ STENCIL_ATTACHMENT: 0x8D20,
+ DEPTH_STENCIL_ATTACHMENT: 0x821A,
+ NONE: 0,
+ FRAMEBUFFER_COMPLETE: 0x8CD5,
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6,
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7,
+ FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9,
+ FRAMEBUFFER_UNSUPPORTED: 0x8CDD,
+ FRAMEBUFFER_BINDING: 0x8CA6,
+ RENDERBUFFER_BINDING: 0x8CA7,
+ MAX_RENDERBUFFER_SIZE: 0x84E8,
+ INVALID_FRAMEBUFFER_OPERATION: 0x0506,
+ UNPACK_FLIP_Y_WEBGL: 0x9240,
+ UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241,
+ CONTEXT_LOST_WEBGL: 0x9242,
+ UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243,
+ BROWSER_DEFAULT_WEBGL: 0x9244,
+ TEXTURE_MAX_LOD: 0x813B,
+ TEXTURE_BASE_LEVEL: 0x813C,
+ TEXTURE_IMMUTABLE_FORMAT: 0x912F,
+ UNIFORM_BLOCK_BINDING: 0x8A3F,
+ UNIFORM_BLOCK_DATA_SIZE: 0x8A40,
+ UNIFORM_BLOCK_ACTIVE_UNIFORMS: 0x8A42,
+ UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 0x8A43,
+ UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 0x8A44,
+ UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 0x8A46,
+ RED: 0x1903,
+ PIXEL_UNPACK_BUFFER: 0x88EC,
+ RGB8: 0x8051,
+ R16F: 0x822D,
+ COPY_WRITE_BUFFER: 0x8F37,
+ TEXTURE_3D: 0x806F,
+ COMPRESSED_R11_EAC: 0x9270,
+ COPY_READ_BUFFER: 0x8F36,
+ TRANSFORM_FEEDBACK_BUFFER: 0x8C8E,
+ TRANSFORM_FEEDBACK_BUFFER_BINDING: 0x8C8F,
+ TRANSFORM_FEEDBACK_BUFFER_SIZE: 0x8C85,
+ TRANSFORM_FEEDBACK_BUFFER_START: 0x8C84,
+ UNIFORM_BUFFER_BINDING: 0x8A28,
+ UNIFORM_BUFFER_SIZE: 0x8A2A,
+ UNIFORM_BUFFER_START: 0x8A29,
+ DYNAMIC_READ: 0x88E9,
+ READ_FRAMEBUFFER: 0x8CA8,
+ COLOR_ATTACHMENT1: 0x8CE1,
+ INTERLEAVED_ATTRIBS: 0x8C8C,
+ UNIFORM_OFFSET: 0x8A3B,
+ UNIFORM_TYPE: 0x8A37,
+ UNIFORM_SIZE: 0x8A38,
+ UNIFORM_BLOCK_INDEX: 0x8A3A,
+ UNIFORM_ARRAY_STRIDE: 0x8A3C,
+ UNIFORM_MATRIX_STRIDE: 0x8A3D,
+ UNIFORM_IS_ROW_MAJOR: 0x8A3E,
+ TEXTURE_MAX_ANISOTROPY_EXT: 0x84FE
+ }
+
+ // 顶点着色器程序
+ var VSHADER_SOURCE =
+ 'attribute vec4 a_Position;\n' + // attribute variable
+ 'attribute vec4 a_Color;\n' +
+ 'varying vec4 v_Color;\n' +
+ 'void main() {\n' +
+ ' gl_Position = a_Position;\n' + // Set the vertex coordinates of the point
+ ' v_Color = a_Color;\n' +
+ '}\n';
+
+ // 片元着色器程序
+ var FSHADER_SOURCE =
+ 'precision mediump float;\n' +
+ 'varying vec4 v_Color;\n' +
+ 'void main() {\n' +
+ ' gl_FragColor = v_Color;\n' +
+ '}\n';
+
+ function initVertexBuffers(gl) {
+ // 顶点坐标和颜色
+ var verticesColors = new Float32Array([
+ 0.0, -0.5, 1.0, 0.0, 0.0,
+ -0.5, -0.8, 0.0, 1.0, 0.0,
+ 0.5, -0.8, 0.0, 0.0, 1.0,
+ ]);
+
+ var n = 3; // 点的个数
+ var FSIZE = verticesColors.BYTES_PER_ELEMENT; //数组中每个元素的字节数
+
+ // 创建缓冲区对象
+ var vertexBuffer = gl.createBuffer();
+ if (!vertexBuffer) {
+ console.log('Failed to create the buffer object');
+ return -1;
+ }
+
+ // 将缓冲区对象绑定到目标
+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);
+ // 向缓冲区对象写入数据
+ gl.bufferData(gl.ARRAY_BUFFER, verticesColors.buffer, gl.STATIC_DRAW);
+
+ //获取着色器中attribute变量a_Position的地址
+ var a_Position = gl.getAttribLocation(gl.program, 'a_Position');
+ if (a_Position < 0) {
+ console.log('Failed to get the storage location of a_Position');
+ return -1;
+ }
+ // 将缓冲区对象分配给a_Position变量
+ gl.vertexAttribPointer(a_Position, 2, gl.FLOAT, false, 5 * FSIZE, 0);
+
+ // 连接a_Position变量与分配给它的缓冲区对象
+ gl.enableVertexAttribArray(a_Position);
+
+ //获取着色器中attribute变量a_Color的地址
+ var a_Color = gl.getAttribLocation(gl.program, 'a_Color');
+ if (a_Color < 0) {
+ console.log('Failed to get the storage location of a_Color');
+ return -1;
+ }
+ // 将缓冲区对象分配给a_Color变量
+ gl.vertexAttribPointer(a_Color, 3, gl.FLOAT, false, FSIZE * 5, FSIZE * 2);
+
+ // 连接a_Color变量与分配给它的缓冲区对象
+ gl.enableVertexAttribArray(a_Color);
+
+ // 解除绑定
+ gl.bindBuffer(gl.ARRAY_BUFFER, null);
+
+ return n;
+ }
+
+ /**
+ * Creates a program object and makes it as the current object.
+ * @param gl Indicates the WebGL context.
+ * @param vshader Indicates a vertex shader program (string).
+ * @param fshader Indicates a fragment shader program (string).
+ * @return Returns true if the WebGLProgram object was created and successfully made as the current object; returns false otherwise.
+ */
+ function initShaders(gl, vshader, fshader) {
+ var program = createProgram(gl, vshader, fshader);
+ console.log("======createProgram program: " + program);
+
+ if (!program) {
+ console.log('Failed to create program');
+ return false;
+ }
+ gl.useProgram(program);
+ gl.program = program;
+
+ return true;
+ }
+
+ /**
+ * Creates a linked program object.
+ * @param gl Indicates the WebGL context.
+ * @param vshader Indicates a vertex shader program (string).
+ * @param fshader Indicates a fragment shader program (string).
+ * @return Returns the created program object if the operation is successful; returns null otherwise.
+ */
+ function createProgram(gl, vshader, fshader) {
+ console.log("======createProgram start======");
+ // Create shader object
+ var vertexShader = loadShader(gl, gl.VERTEX_SHADER, vshader);
+ console.log("======vertexShader: " + vertexShader);
+ var fragmentShader = loadShader(gl, gl.FRAGMENT_SHADER, fshader);
+ if (!vertexShader || !fragmentShader) {
+ return null;
+ }
+
+ // Create a program object.
+ var program = gl.createProgram();
+ console.log("======createProgram program: " + program);
+
+ if (!program) {
+ return null;
+ }
+
+ // Attach the shader objects.
+ gl.attachShader(program, vertexShader);
+ gl.attachShader(program, fragmentShader);
+
+ // Link the program object.
+ gl.linkProgram(program);
+
+ // Check the result of linking.
+ var linked = gl.getProgramParameter(program, 0x8B82);
+ console.log("======getProgramParameter linked: " + linked);
+
+ if (!linked) {
+ var error = gl.getProgramInfoLog(program);
+ console.log('Failed to link the program: ' + error);
+ gl.deleteProgram(program);
+ gl.deleteShader(fragmentShader);
+ gl.deleteShader(vertexShader);
+ return null;
+ }
+ return program;
+ }
+
+ /**
+ * Creates a shader object.
+ * @param gl Indicates the WebGL context.
+ * @param type Indicates the type of the shader object to be created.
+ * @param source Indicates the shader program (string).
+ * @return Returns the created shader object if the operation is successful; returns false otherwise.
+ */
+ function loadShader(gl, type, source) {
+ console.log("======into loadShader====");
+ // Create shader object
+ var shader = gl.createShader(type);
+ if (shader == null) {
+ console.log('Failed to create the shader.');
+ return null;
+ }
+
+ // Set the shader program.
+ gl.shaderSource(shader, source);
+
+ // Compile the shader.
+ gl.compileShader(shader);
+
+ // Check the result of compilation.
+ var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
+ if (!compiled) {
+ var error = gl.getShaderInfoLog(shader);
+ console.log('Failed to compile the shader: ' + error);
+ gl.deleteShader(shader);
+ return null;
+ }
+
+ return shader;
+ }
+
+ export default {
+ data: {
+ title: "DEMO BY TEAMOL",
+ fit:"cover",
+ fits: ["cover", "contain", "fill", "none", "scale-down"]
+ }
+ ,onInit() {
+ this.title = this.$t('strings.world');
+ }
+ ,BtnColorTriangle() {
+ // 获取canvas元素
+ const el = this.$refs.canvas1;
+ // 获取webgl上下文
+ var gl = el.getContext('webgl');
+
+ if (!gl) {
+ console.log('Failed to get the rendering context for WebGL');
+ return;
+ }
+
+ // 初始化着色器
+ if (!initShaders(gl, VSHADER_SOURCE, FSHADER_SOURCE)) {
+ console.log('Failed to intialize shaders.');
+ return;
+ }
+
+ // 设置顶点位置
+ var n = initVertexBuffers(gl);
+ if (n < 0) {
+ console.log('Failed to set the positions of the vertices');
+ return;
+ }
+
+ // 指定清空的颜色
+ gl.clearColor(0.0, 0.0, 0.0, 1.0);
+
+ // 清空
+ gl.clear(gl.COLOR_BUFFER_BIT);
+
+ // 绘制三角形
+ gl.drawArrays(gl.TRIANGLES, 0, n);
+
+ //清buffer
+ gl.flush();
+ }
+ }
+ ```
+
+
+**图2** 点击按钮绘制彩色三角形的效果图
+
+![zh-cn_image_0000001192429306](figures/zh-cn_image_0000001192429306.gif)
diff --git a/zh-cn/application-dev/webgl/webgl-overview.md b/zh-cn/application-dev/webgl/webgl-overview.md
new file mode 100644
index 0000000000000000000000000000000000000000..9f6add6c7eb67fd1418fdd6a72c83a2adb27c39c
--- /dev/null
+++ b/zh-cn/application-dev/webgl/webgl-overview.md
@@ -0,0 +1,47 @@
+# 概述
+
+WebGL的全称为Web Graphic Library(网页图形库),主要用于交互式渲染2D图形和3D图形。目前OpenHarmony中使用的WebGL是基于OpenGL裁剪的OpenGL ES,可以在HTML5的canvas元素对象中使用,无需使用插件,支持跨平台。WebGL程序是由JavaScript代码组成的,其中使用的API可以利用用户设备提供的GPU硬件完成图形渲染和加速。
+
+
+## 基本概念
+
+
+### 着色器
+
+可以理解为运行在显卡中的指令和数据。在WebGL中,着色器是用OpenGL ES着色语言(GLSL)编写的。
+
+完整的着色器包括顶点着色器和片元着色器。顶点着色器和片元着色器的交互则涉及到图片光栅化。
+
+- 顶点着色器:最基本的任务是接收三维空间中点的坐标,将其处理为二维空间中的坐标并输出。
+
+- 片元着色器:最基本的任务是对需要处理的屏幕上的每个像素输出一个颜色值。
+
+- 图片光栅化:将顶点着色器输出的二维空间中的点坐标,转化为需要处理的像素并传递给片元着色器的过程。
+
+
+### 缓冲区
+
+驻存于内存中的JavaScript对象,存储着即将推送到着色器中的attribute对象。
+
+
+### 着色器程序
+
+将缓冲区中的数据推送到着色器中还需涉及“着色器程序”,一个负责关联着色器和缓冲区的JavaScript对象。一个WebGLProgram 对象由两个编译过后的 WebGLShader 组成,即顶点着色器和片段着色器(均由 GLSL 语言所写)。
+
+
+## 运作机制
+
+**图1** WebGL运作机制
+
+![zh-cn_image_0000001238544451](figures/zh-cn_image_0000001238544451.png)
+
+
+- 应用前端HTML5绘制界面组件。
+
+- Native API完成前端JavaScript与C++代码交互。
+
+- QuickJS与V8为图形框架,为WebGL模块提供绘制对象Surface。
+
+- WebGL模块对外暴露OpenGL ES的GPU绘制接口。
+
+- 中间接口层EGL(Embedded Graphics Library)完成不同平台的适配。
diff --git a/zh-cn/device-dev/driver/driver-hdf-manage.md b/zh-cn/device-dev/driver/driver-hdf-manage.md
index d5cef9325b4f6a86f858e41d65b22fe0068b4259..9b591965f4bb551eaac376cbc622aa92ef3c4dd1 100644
--- a/zh-cn/device-dev/driver/driver-hdf-manage.md
+++ b/zh-cn/device-dev/driver/driver-hdf-manage.md
@@ -347,8 +347,17 @@ root {
node1 {
attributes;
}
+node2 {
+ attr_1 = &root.node1;
+}
+```
+或
+```
node2 {
+ node1 {
+ attributes;
+ }
attr_1 = &node1;
}
```
diff --git a/zh-cn/device-dev/driver/driver-peripherals-sensor-des.md b/zh-cn/device-dev/driver/driver-peripherals-sensor-des.md
index 90ddbe4e79575b84bbf50802b4b5b5a6bd9de6fa..583fb5b8a28785b435f611c9f61dfa218b0e1e9a 100755
--- a/zh-cn/device-dev/driver/driver-peripherals-sensor-des.md
+++ b/zh-cn/device-dev/driver/driver-peripherals-sensor-des.md
@@ -15,7 +15,7 @@
### 功能简介
-Sensor设备作为外接设备重要组成模块,通过Sensor驱动模型屏蔽硬件器件差异,为上层Sensor服务系统提供稳定的Sensor基础能力接口,包括Sensor列表查询、Sensor启停、Sensor订阅及取消订阅,Sensor参数配置等功能;Sensor设备驱动的开发是基于HDF驱动框架基础上,结合操作系统适配层(OSAL)和平台驱动接口(比如I2C/SPI/UART总线等平台资源)能力,屏蔽不同操作系统和平台总线资源差异,实现Sensor驱动“一次开发,多系统部署”的目标。Sensor驱动模型如[图1](#fig10451455446)所示:
+Sensor驱动模型屏蔽硬件器件差异,为上层Sensor服务系统提供稳定的Sensor基础能力接口,包括Sensor列表查询、Sensor启停、Sensor订阅及取消订阅,Sensor参数配置等功能;Sensor设备驱动的开发是基于HDF驱动框架基础上,结合操作系统适配层(OSAL)和平台驱动接口(比如I2C/SPI/UART总线等平台资源)能力,屏蔽不同操作系统和平台总线资源差异,实现Sensor驱动“一次开发,多系统部署”的目标。Sensor驱动模型如[图1](#fig10451455446)所示:
**图 1** Sensor驱动模型图
![Sensor驱动模型图](figures/Sensor%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9E%8B%E5%9B%BE.png)
@@ -24,9 +24,9 @@ Sensor设备作为外接设备重要组成模块,通过Sensor驱动模型屏
通过介绍Sensor驱动模型的加载以及运行流程,对模型内部关键组件以及关联组件之间的关系进行了划分,整体加载流程如[图2](#Sensor驱动模型图)所示:
-**图 2** Sensor驱动模型运行图
+**图 2** Sensor驱动运行图
-![Sensor驱动模型运行图](figures/Sensor%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9E%8B%E8%BF%90%E8%A1%8C%E5%9B%BE.png)
+![Sensor驱动运行图](figures/Sensor%E9%A9%B1%E5%8A%A8%E8%BF%90%E8%A1%8C%E5%9B%BE.png)
Sensor驱动模型以标准系统Hi3516DV300产品中的加速度传感器驱动为例,介绍整个驱动加载及运行流程:
@@ -249,6 +249,7 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考[表3](#tab