提交 ab5640e0 编写于 作者: R RayShih

fix review mistakes

Signed-off-by: NRayShih <shirui721@huawei.com>
上级 bb4674e6
...@@ -29,12 +29,12 @@ Ability assistant(Ability助手,简称为aa)是实现应用、原子化服 ...@@ -29,12 +29,12 @@ Ability assistant(Ability助手,简称为aa)是实现应用、原子化服
用于启动一个ability。 用于启动一个ability。
| 参数 | 参数说明 | | 参数 | 参数说明 |
| --------- | ---------------------- | | --------- | -------------------------- |
| -h/--help | 帮助信息。 | | -h/--help | 帮助信息。 |
| -d | 可选参数,device id | | -d | 可选参数,`device id` |
| -a | 必选参数,ability name | | -a | 必选参数,`ability name` |
| -b | 必选参数,bundle name | | -b | 必选参数,`bundle name` |
| -D | 可选参数,调试模式 | | -D | 可选参数,调试模式 |
**返回值:** **返回值:**
...@@ -77,11 +77,10 @@ Ability assistant(Ability助手,简称为aa)是实现应用、原子化服 ...@@ -77,11 +77,10 @@ Ability assistant(Ability助手,简称为aa)是实现应用、原子化服
| -a/--all | - | 打印所有mission内的Ability。 | | -a/--all | - | 打印所有mission内的Ability。 |
| -l/--mission-list | type(缺省打印全部) | 打印任务栈信息。<br />type:<br />NORMAL <br />DEFAULT_STANDARD<br />DEFAULT_SINGLE<br />LAUNCHER | | -l/--mission-list | type(缺省打印全部) | 打印任务栈信息。<br />type:<br />NORMAL <br />DEFAULT_STANDARD<br />DEFAULT_SINGLE<br />LAUNCHER |
| -e/--extension | elementName | 打印扩展组件信息。 | | -e/--extension | elementName | 打印扩展组件信息。 |
| -u/--userId | UserId | 打印指定UserId的栈信息,需要和其他参数组合使用,例如 aa dump -a -u 100、aa dump -d -u 100、 | | -u/--userId | UserId | 打印指定UserId的栈信息,需要和其他参数组合使用,例如 `aa dump -a -u 100``aa dump -d -u 100` |
| -d/--data | | 打印Data Ability。 | | -d/--data | | 打印Data Ability。 |
| -i/--ability | AbilityRecord ID | 打印指定Ability详细信息 | | -i/--ability | AbilityRecord ID | 打印指定Ability详细信息 |
| -c/--client | | 打印Ability详细信息,需要和其他参数组合使用,例如 aa dump -a -c、aa dump -i 21 -c、 | | -c/--client | | 打印Ability详细信息,需要和其他参数组合使用,例如 `aa dump -a -c``aa dump -i 21 -c` |
**使用方法:** **使用方法:**
......
...@@ -2,7 +2,10 @@ ...@@ -2,7 +2,10 @@
​ Ability是应用所具备能力的抽象,也是应用程序的重要组成部分。Ability是系统调度应用的最小单元,是能够完成一个独立功能的组件,一个应用可以包含一个或多个Ability。 ​ Ability是应用所具备能力的抽象,也是应用程序的重要组成部分。Ability是系统调度应用的最小单元,是能够完成一个独立功能的组件,一个应用可以包含一个或多个Ability。
​ Ability框架模型结构具有两种形态。第一种形态为FA模型,API 8及其更早版本的应用程序只能使用FA模型进行开发, FA模型将Ability分为FA(Feature Ability)和PA(Particle Ability)两种类型,其中FA支持Page Ability,PA支持Service Ability和Data Ability;从API9开始,Ability框架引入了Stage模型作为第二种应用形态,Stage模型将Ability分为PageAbility和ExtensionAbility两大类,其中ExtensionAbility又被扩展为ServiceExtensionAbility、FormExtensionAbility、DataShareExtensionAbility等等一系列ExtensionAbility,以便满足更多的使用场景。 ​ Ability框架模型结构具有两种形态:
- 第一种形态为FA模型。API 8及其更早版本的应用程序只能使用FA模型进行开发。 FA模型将Ability分为FA(Feature Ability)和PA(Particle Ability)两种类型,其中FA支持Page Ability,PA支持Service Ability、Data Ability、以及FormAbility;
- 第二种形态为Stage模型。从API 9开始,Ability框架引入了Stage模型作为第二种应用形态,Stage模型将Ability分为PageAbility和ExtensionAbility两大类,其中ExtensionAbility又被扩展为ServiceExtensionAbility、FormExtensionAbility、DataShareExtensionAbility等等一系列ExtensionAbility,以便满足更多的使用场景。
​ Stage模型的设计,主要是为了方便开发者更加方便地开发出分布式环境下的复杂应用。下表给出了两种模型在设计上的差异: ​ Stage模型的设计,主要是为了方便开发者更加方便地开发出分布式环境下的复杂应用。下表给出了两种模型在设计上的差异:
......
# FA模型综述 # FA模型综述
## 整体架构 ## 整体架构
OpenHarmony用户程序的开发本质上就是开发Ability,OpenHarmony系统也是通过调度Ability,通过系统提供的一致性调度契约对Ability进行生命周期管理,从而实现对用户程序的调度。FA模型中Ability分为PageAbility、ServiceAbility和DataAbility三种类型。其中PageAbility具备ArkUI的Ability,是用户具体可见并可以交互的Ability实例;ServiceAbility也是Ability一种,但是没有UI,提供其他Ability调用自定义的服务,在后台运行;DataAbility也是没有UI,提供其他Ability进行数据的增删查服务,在后台运行。 OpenHarmony用户程序的开发本质上就是开发Ability,OpenHarmony系统也是通过调度Ability,通过系统提供的一致性调度契约对Ability进行生命周期管理,从而实现对用户程序的调度。
Ability框架在API 8及更早版本使用FA模型。FA模型中Ability分为PageAbility、ServiceAbility、DataAbility、FormAbility几种类型。其中:
- PageAbility是具备ArkUI实现的Ability,是用户具体可见并可以交互的Ability实例;
- ServiceAbility也是Ability一种,但是没有UI,提供其他Ability调用自定义的服务,在后台运行;
- DataAbility也是没有UI的Ability,提供其他Ability进行数据的增删查服务,在后台运行;
- FormAbility是卡片Ability,是一种界面展示形式。
## 应用包结构 ## 应用包结构
**应用包结构如下图所示:** **应用包结构如下图所示:**
![fa-package-info](figures/fa-package-info.png) ![fa-package-info](figures/fa-package-info.png)
应用包结构的配置请参见[包结构说明](../quick-start/package-structure.md)
## 生命周期 ## 生命周期
**pageAbility生命周期回调如下图所示:** 在所有Ability中,PageAbility因为具有界面,也是应用的交互入口,因此生命周期更加复杂。
**PageAbility生命周期回调如下图所示:**
![fa-pageAbility-lifecycle](figures/fa-pageAbility-lifecycle.png) ![fa-pageAbility-lifecycle](figures/fa-pageAbility-lifecycle.png)
开发者可以在 app.js/app.ets 中重写生命周期函数,在对应的生命周期函数内处理应用相应逻辑。 其他类型Ability的生命周期可参考PageAbility生命周期去除前后台切换以及`onShow`的部分进行理解。
开发者可以在 `app.js/app.ets` 中重写生命周期函数,在对应的生命周期函数内处理应用相应逻辑。
## 进程线程模型 ## 进程线程模型
......
# DataAbility开发指导 # DataAbility开发指导
## 场景介绍 ## 场景介绍
基于Data模板的Ability(以下简称“Data”),有助于应用管理其自身和其他应用存储数据的访问,并提供与其他应用共享数据的方法。Data既可用于同设备不同应用的数据共享,也支持跨设备不同应用的数据共享。 基于Data模板的Ability(以下简称“Data”)有助于应用管理其自身和其他应用存储数据的访问,并提供与其他应用共享数据的方法。Data既可用于同设备不同应用的数据共享,也支持跨设备不同应用的数据共享。
Data提供方可以自定义数据的增、删、改、查,以及文件打开等功能,并对外提供这些接口。 Data提供方可以自定义数据的增、删、改、查,以及文件打开等功能,并对外提供这些接口。
...@@ -27,12 +27,11 @@ Data提供方可以自定义数据的增、删、改、查,以及文件打开 ...@@ -27,12 +27,11 @@ Data提供方可以自定义数据的增、删、改、查,以及文件打开
## 开发步骤 ## 开发步骤
### 创建Data ### 创建Data
1.需要实现Data中Insert,Query,Update,Delete接口的业务内容.保证能够满足数据库存储业务的基本需求.BatchInsert与ExecuteBatch接口已经在系统中实现遍历逻辑,依赖Insert,Query,Update,Delete接口逻辑,来实现数据的批量处理. 1. 需要实现Data中Insert、Query、Update、Delete接口的业务内容。保证能够满足数据库存储业务的基本需求。BatchInsert与ExecuteBatch接口已经在系统中实现遍历逻辑,依赖Insert、Query、Update、Delete接口逻辑,来实现数据的批量处理。
创建Data的代码示例如下:
创建Data的代码示例如下: ```javascript
export default {
```javascript
export default {
onInitialized(abilityInfo) { onInitialized(abilityInfo) {
console.info('DataAbility onInitialized, abilityInfo:' + abilityInfo.bundleName) console.info('DataAbility onInitialized, abilityInfo:' + abilityInfo.bundleName)
dataRdb.getRdbStore(STORE_CONFIG, 1, (err, store) => { dataRdb.getRdbStore(STORE_CONFIG, 1, (err, store) => {
...@@ -73,23 +72,22 @@ export default { ...@@ -73,23 +72,22 @@ export default {
let rdbPredicates = dataAbility.createRdbPredicates(TABLE_NAME, predicates) let rdbPredicates = dataAbility.createRdbPredicates(TABLE_NAME, predicates)
rdbStore.delete(rdbPredicates, callback) rdbStore.delete(rdbPredicates, callback)
} }
}; };
```
```
2.子系统配置 2. 子系统配置
| Json重要字段 | 备注说明 | | Json重要字段 | 备注说明 |
| ------------- | ------------------------------------------------------------ | | ------------ | ------------------------------------------------------------ |
| "name" | Ability名子,对应Ability派生的Data类名 | | "name" | Ability名称,对应Ability派生的Data类名。 |
| "type" | Ability类型,Data对应的Ability类型未"data" | | "type" | Ability类型,Data对应的Ability类型为”data“。 |
| "uri" | 通信使用的URI | | "uri" | 通信使用的URI。 |
| "visible" | 对其他应用是否可见, 设置为true时, Data才能与其他应用进行通信传输数据 | | "visible" | 对其他应用是否可见,设置为true时,Data才能与其他应用进行通信传输数据。 |
**config.json配置样例** **config.json配置样例**
```json ```json
"abilities":[{ "abilities":[{
"srcPath": "DataAbility", "srcPath": "DataAbility",
"name": ".DataAbility", "name": ".DataAbility",
"icon": "$media:icon", "icon": "$media:icon",
...@@ -98,123 +96,139 @@ export default { ...@@ -98,123 +96,139 @@ export default {
"type": "data", "type": "data",
"visible": true, "visible": true,
"uri": "dataability://ohos.samples.etsdataability.DataAbility" "uri": "dataability://ohos.samples.etsdataability.DataAbility"
}] }]
``` ```
### 访问Data ### 访问Data
1.JS应用开发前准备 #### 开发前准备
需导入基础依赖包,以及获取与Data子模块通信的Uri字符串。
基础依赖包: 其中,基础依赖包包括:
1. @ohos.ability.featureAbility - @ohos.ability.featureAbility
2. @ohos.data.dataability - @ohos.data.dataability
3. @ohos.data.rdb - @ohos.data.rdb
与Data子系统通信的Uri字符串
2.JS应用开发接口 #### DataAbility接口开发指导
工具接口类对象创建 1. 创建工具接口类对象。
```js ```js
// 作为参数传递的Uri,与config中定义的Uri的区别是多了一个"/",是因为作为参数传递的uri中,在第二个与第三个"/"中间,存在一个DeviceID的参数 // 作为参数传递的Uri,与config中定义的Uri的区别是多了一个"/",是因为作为参数传递的uri中,在第二个与第三个"/"中间,存在一个DeviceID的参数
var urivar = "dataability:///com.ix.DataAbility" var urivar = "dataability:///com.ix.DataAbility"
var DAHelper = featureAbility.acquireDataAbilityHelper( var DAHelper = featureAbility.acquireDataAbilityHelper(
urivar urivar
); );
``` ```
数据库相关的rdb数据构建 2. 构建数据库相关的rdb数据。
```js ```js
var valuesBucket = {"name": "gaolu"} var valuesBucket = {"name": "gaolu"}
var da = new ohos_data_ability.DataAbilityPredicates() var da = new ohos_data_ability.DataAbilityPredicates()
var valArray =new Array("value1"); var valArray =new Array("value1");
var cars = new Array({"batchInsert1" : "value1",}); var cars = new Array({"batchInsert1" : "value1",});
``` ```
向指定的Data子系统插入数据,inster调用 3. 调用insert方法向指定的Data子模块插入数据。
```js ```js
// callbacke方式调用: // callback方式调用:
DAHelper.insert( DAHelper.insert(
urivar, urivar,
valuesBucket, valuesBucket,
(error, data) => { (error, data) => {
expect(typeof(data)).assertEqual("number") expect(typeof(data)).assertEqual("number")
} }
); );
// promise方式调用: ```
var datainsert = await DAHelper.insert(
```js
// promise方式调用:
var datainsert = await DAHelper.insert(
urivar, urivar,
valuesBucket valuesBucket
); );
``` ```
删除Data子系统中指定的数据, delete调用 4. 调用delete方法删除Data子模块中指定的数据。
```js ```js
// callbacke方式调用: // callback方式调用:
DAHelper.delete( DAHelper.delete(
urivar, urivar,
da, da,
(error, data) => { (error, data) => {
expect(typeof(data)).assertEqual("number") expect(typeof(data)).assertEqual("number")
} }
); );
// promise方式调用: ```
var datadelete = await DAHelper.delete(
```js
// promise方式调用:
var datadelete = await DAHelper.delete(
urivar, urivar,
da, da,
); );
``` ```
更新指定Data子系统中的数据, update调用 5. 调用update方法更新指定Data子模块中的数据。
```js ```js
// callbacke方式调用: // callback方式调用:
DAHelper.update( DAHelper.update(
urivar urivar
valuesBucket, valuesBucket,
da, da,
(error, data) => { (error, data) => {
expect(typeof(data)).assertEqual("number") expect(typeof(data)).assertEqual("number")
} }
); );
// promise方式调用: ```
var dataupdate = await DAHelper.update(
```js
// promise方式调用:
var dataupdate = await DAHelper.update(
urivar, urivar,
valuesBucket, valuesBucket,
da, da,
); );
``` ```
在指定的Data子系统中查找数据,query调用 6. 调用query方法在指定的Data子模块中查找数据。
```js ```js
// callbacke方式调用: // callback方式调用:
DAHelper.query( DAHelper.query(
urivar, urivar,
valArray, valArray,
da, da,
(error, data) => { (error, data) => {
expect(typeof(data)).assertEqual("object") expect(typeof(data)).assertEqual("object")
} }
); );
// promise方式调用: ```
var dataquery = await DAHelper.query(
```js
// promise方式调用:
var dataquery = await DAHelper.query(
urivar, urivar,
valArray, valArray,
da da
); );
``` ```
向指定的数据子系统批量插入数据,batchInsert调用 7. 调用batchInsert方法向指定的数据子系统批量插入数据。
```js ```js
// callbacke方式调用: // callback方式调用:
DAHelper.batchInsert( DAHelper.batchInsert(
urivar, urivar,
cars, cars,
(error, data) => { (error, data) => {
expect(typeof(data)).assertEqual("number") expect(typeof(data)).assertEqual("number")
} }
); );
// promise方式调用: ```
var databatchInsert = await DAHelper.batchInsert(
```js
// promise方式调用:
var databatchInsert = await DAHelper.batchInsert(
urivar, urivar,
cars cars
); );
``` ```
向指定的Data子系统进行数据的批量处理,executeBatch调用 8. 调用executeBatch方法向指定的Data子模块进行数据的批量处理。
```js ```js
// callbacke方式调用: // callbacke方式调用:
DAHelper.executeBatch( DAHelper.executeBatch(
urivar, urivar,
[ [
{ {
...@@ -230,9 +244,12 @@ DAHelper.executeBatch( ...@@ -230,9 +244,12 @@ DAHelper.executeBatch(
(error, data) => { (error, data) => {
expect(typeof(data)).assertEqual("object") expect(typeof(data)).assertEqual("object")
} }
); );
// promise方式调用: ```
var dataexecuteBatch = await DAHelper.executeBatch(
```js
// promise方式调用:
var dataexecuteBatch = await DAHelper.executeBatch(
urivar, urivar,
[ [
{ {
...@@ -248,8 +265,8 @@ var dataexecuteBatch = await DAHelper.executeBatch( ...@@ -248,8 +265,8 @@ var dataexecuteBatch = await DAHelper.executeBatch(
interrupted:true, interrupted:true,
} }
] ]
); );
``` ```
## 开发实例 ## 开发实例
......
...@@ -24,10 +24,10 @@ ...@@ -24,10 +24,10 @@
FA卡片开发,即基于[FA模型](fa-brief.md)的卡片提供方开发,主要涉及如下功能逻辑: FA卡片开发,即基于[FA模型](fa-brief.md)的卡片提供方开发,主要涉及如下功能逻辑:
- 卡片生命周期回调函数FormAbility开发 - 开发卡片生命周期回调函数FormAbility
- 创建卡片数据FormBindingData对象。 - 创建卡片数据FormBindingData对象。
- 通过FormProvider更新卡片。 - 通过FormProvider更新卡片。
- 卡片页面开发 - 开发卡片页面
## 接口说明 ## 接口说明
...@@ -164,7 +164,7 @@ Form需要在应用配置文件config.json中进行配置。 ...@@ -164,7 +164,7 @@ Form需要在应用配置文件config.json中进行配置。
| scheduledUpdateTime | 表示卡片的定点刷新的时刻,采用24小时制,精确到分钟。 | 字符串 | 可缺省,缺省值为“0:0”。 | | scheduledUpdateTime | 表示卡片的定点刷新的时刻,采用24小时制,精确到分钟。 | 字符串 | 可缺省,缺省值为“0:0”。 |
| updateDuration | 表示卡片定时刷新的更新周期,单位为30分钟,取值为自然数。<br />当取值为0时,表示该参数不生效。<br />当取值为正整数N时,表示刷新周期为30*N分钟。 | 数值 | 可缺省,缺省值为“0”。 | | updateDuration | 表示卡片定时刷新的更新周期,单位为30分钟,取值为自然数。<br />当取值为0时,表示该参数不生效。<br />当取值为正整数N时,表示刷新周期为30*N分钟。 | 数值 | 可缺省,缺省值为“0”。 |
| formConfigAbility | 表示用于调整卡片的设施或活动的名称。 | 字符串 | 可缺省,缺省值为空。 | | formConfigAbility | 表示用于调整卡片的设施或活动的名称。 | 字符串 | 可缺省,缺省值为空。 |
| formVisibleNotify | 标识是否允许卡片使用卡片可见性通知 | 字符串 | 可缺省,缺省值为空。 | | formVisibleNotify | 标识是否允许卡片使用卡片可见性通知 | 字符串 | 可缺省,缺省值为空。 |
| jsComponentName | 表示JS卡片的Component名称。字符串最大长度为127字节。仅当卡片类型为JS卡片时,需要配置该标签。 | 字符串 | 否 | | jsComponentName | 表示JS卡片的Component名称。字符串最大长度为127字节。仅当卡片类型为JS卡片时,需要配置该标签。 | 字符串 | 否 |
| metaData | 表示卡片的自定义信息,包含customizeData数组标签。 | 对象 | 可缺省,缺省值为空。 | | metaData | 表示卡片的自定义信息,包含customizeData数组标签。 | 对象 | 可缺省,缺省值为空。 |
| customizeData | 表示自定义的卡片信息。 | 对象数组 | 可缺省,缺省值为空。 | | customizeData | 表示自定义的卡片信息。 | 对象数组 | 可缺省,缺省值为空。 |
......
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
## 概述 ## 概述
### 功能简介 ### 功能简介
PageAbility是具备ArkUI的Ability,是用户具体可见并可以交互的Ability实例,开发者通过IDE创建Ability时,IDE会自动创建相关模板代码。PageAbility相关能力通过单例featureAbility暴露,生命周期相关回调通过app.js/app.ets中回调函数暴露。 PageAbility是具备ArkUI实现的Ability,是开发者具体可见并可以交互的Ability实例,开发者通过IDE创建Ability时,IDE会自动创建相关模板代码。PageAbility相关能力通过单例featureAbility暴露,生命周期相关回调通过app.js/app.ets中回调函数暴露。
### PageAbility的生命周期 ### PageAbility的生命周期
**Ability生命周期介绍**(Ability Life Cycle)是Ability被调度到INACTIVE、ACTIVE、BACKGROUND等各个状态的统称(主要涉及PageAbility类型和ServiceAbility类型的Ability)。 **Ability生命周期介绍**(Ability Life Cycle)
**PageAbility生命周期流转如下图所示** Ability生命周期是Ability被调度到INACTIVE、ACTIVE、BACKGROUND等各个状态的统称。PageAbility生命周期流转如下图所示:
![PageAbility-Lifecycle](figures/page-ability-lifecycle.png) ![PageAbility-Lifecycle](figures/page-ability-lifecycle.png)
...@@ -23,13 +23,13 @@ PageAbility是具备ArkUI的Ability,是用户具体可见并可以交互的Abi ...@@ -23,13 +23,13 @@ PageAbility是具备ArkUI的Ability,是用户具体可见并可以交互的Abi
- **ACTIVE**:前台激活状态,表示当前窗口已显示,并获取焦点。 - **ACTIVE**:前台激活状态,表示当前窗口已显示,并获取焦点。
- **BACKGROUND**: 后台状态,表示当前Ability退到后台,Ability在被销毁后由BACKGROUND状态进入INITIAL状态,或者重新被激活后由BACKGROUND状态进入ACTIVE状态。 - **BACKGROUND**后台状态,表示当前Ability退到后台,Ability在被销毁后由BACKGROUND状态进入INITIAL状态,或者重新被激活后由BACKGROUND状态进入ACTIVE状态。
**PageAbility生命周期回调如下图所示:** **PageAbility生命周期回调与生命周期状态的关系如下图所示:**
![fa-pageAbility-lifecycle](figures/fa-pageAbility-lifecycle.png) ![fa-pageAbility-lifecycle](figures/fa-pageAbility-lifecycle.png)
PageAbility提供命周期回调,开发者可以在 app.js/app.ets 中重写生相关命周期函数 。 PageAbility提供命周期回调,开发者可以在`app.js/app.ets`中重写生命周期相关回调函数 。
## 开发指导 ## 开发指导
### featureAbility接口说明 ### featureAbility接口说明
...@@ -46,16 +46,17 @@ PageAbility提供命周期回调,开发者可以在 app.js/app.ets 中重写 ...@@ -46,16 +46,17 @@ PageAbility提供命周期回调,开发者可以在 app.js/app.ets 中重写
### 启动本地PageAbility ### 启动本地PageAbility
* 导入模块 **导入模块**
```js
import featureAbility from '@ohos.ability.featureAbility'
``` ```
import featureAbility from '@ohos.ability.featureAbility'
``` **示例**
* 示例
```javascript ```javascript
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
featureAbility.startAbility({ featureAbility.startAbility({
want: want:
{ {
action: "", action: "",
...@@ -94,14 +95,16 @@ featureAbility.startAbility({ ...@@ -94,14 +95,16 @@ featureAbility.startAbility({
abilityName: "com.example.startability.MainAbility", abilityName: "com.example.startability.MainAbility",
uri: "" uri: ""
}, },
}, },
); );
``` ```
want参数也可以使用parameters参数,使用key-value的方式输入。
* 示例 `want`参数也可以使用parameters参数,使用key-value的方式输入。
**示例**
```javascript ```javascript
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
featureAbility.startAbility({ featureAbility.startAbility({
want: want:
{ {
bundleName: "com.example.startability", bundleName: "com.example.startability",
...@@ -110,21 +113,22 @@ featureAbility.startAbility({ ...@@ -110,21 +113,22 @@ featureAbility.startAbility({
abilityName: "com.example.startability.MainAbility" abilityName: "com.example.startability.MainAbility"
} }
}, },
}, },
); );
``` ```
### 启动远程PageAbility(当前仅对系统应用开放)
* 导入模块 ### 启动远程PageAbility(当前仅对系统应用开放)
**导入模块**
``` ```
import featureAbility from '@ohos.ability.featureAbility' import featureAbility from '@ohos.ability.featureAbility'
import deviceManager from '@ohos.distributedHardware.deviceManager'; import deviceManager from '@ohos.distributedHardware.deviceManager';
``` ```
* 示例 **示例**
```ts ```ts
function onStartRemoteAbility() { function onStartRemoteAbility() {
console.info('onStartRemoteAbility begin'); console.info('onStartRemoteAbility begin');
var params; var params;
var wantValue = { var wantValue = {
...@@ -140,13 +144,14 @@ function onStartRemoteAbility() { ...@@ -140,13 +144,14 @@ function onStartRemoteAbility() {
console.info('onStartRemoteAbility finished, ' + JSON.stringify(data)); console.info('onStartRemoteAbility finished, ' + JSON.stringify(data));
}); });
console.info('onStartRemoteAbility end'); console.info('onStartRemoteAbility end');
} }
``` ```
从DeviceManager获取deviceId,具体示例代码如下:
从DeviceManager获取`deviceId`,具体示例代码如下:
```ts ```ts
import deviceManager from '@ohos.distributedHardware.deviceManager'; import deviceManager from '@ohos.distributedHardware.deviceManager';
var dmClass; var dmClass;
function getRemoteDeviceId() { function getRemoteDeviceId() {
if (typeof dmClass === 'object' && dmClass != null) { if (typeof dmClass === 'object' && dmClass != null) {
var list = dmClass.getTrustedDeviceListSync(); var list = dmClass.getTrustedDeviceListSync();
if (typeof (list) == 'undefined' || typeof (list.length) == 'undefined') { if (typeof (list) == 'undefined' || typeof (list.length) == 'undefined') {
...@@ -158,13 +163,14 @@ function getRemoteDeviceId() { ...@@ -158,13 +163,14 @@ function getRemoteDeviceId() {
} else { } else {
console.log("MainAbility onButtonClick getRemoteDeviceId err: dmClass is null"); console.log("MainAbility onButtonClick getRemoteDeviceId err: dmClass is null");
} }
} }
``` ```
在跨设备场景下,需要向用户申请数据同步的权限。具体示例代码如下:
在跨设备场景下,需要向开发者申请数据同步的权限。具体示例代码如下:
```ts ```ts
import accessControl from "@ohos.abilityAccessCtrl"; import accessControl from "@ohos.abilityAccessCtrl";
import bundle from '@ohos.bundle'; import bundle from '@ohos.bundle';
async function RequestPermission() { async function RequestPermission() {
console.info('RequestPermission begin'); console.info('RequestPermission begin');
let array: Array<string> = ["ohos.permission.DISTRIBUTED_DATASYNC"]; let array: Array<string> = ["ohos.permission.DISTRIBUTED_DATASYNC"];
var bundleFlag = 0; var bundleFlag = 0;
...@@ -194,22 +200,24 @@ async function RequestPermission() { ...@@ -194,22 +200,24 @@ async function RequestPermission() {
console.info("data authResults:" + data.authResults); console.info("data authResults:" + data.authResults);
}); });
console.info('RequestPermission end'); console.info('RequestPermission end');
} }
``` ```
### 生命周期接口说明 ### 生命周期接口说明
**表2** 生命周期回调函数介绍 **表2** 生命周期回调函数介绍
| 接口名 | 描述 | | 接口名 | 描述 |
| ------------ | ------------------------------------------------------------ | | ------------ | ------------------------------------------------------------ |
| onShow() | Ability由后台不可见状态切换到前台可见状态调用onShow方法,此时用户在屏幕可以看到该Ability | | onShow() | Ability由后台不可见状态切换到前台可见状态调用onShow方法,此时开发者在屏幕可以看到该Ability |
| onHide() | Ability由前台切换到后台不可见状态时调用onHide方法,此时用户在屏幕看不到该Ability。 | | onHide() | Ability由前台切换到后台不可见状态时调用onHide方法,此时开发者在屏幕看不到该Ability。 |
| onDestroy() | 应用退出,销毁Ability对象前调用onDestroy方法,开发者可以在该方法里做一些回收资源、清空缓存等应用退出前的准备工作。 | | onDestroy() | 应用退出,销毁Ability对象前调用onDestroy方法,开发者可以在该方法里做一些回收资源、清空缓存等应用退出前的准备工作。 |
| onCreate() | Ability第一次启动创建Ability时调用onCreate方法,开发者可以在该方法里做一些应用初始化工作。 | | onCreate() | Ability第一次启动创建Ability时调用onCreate方法,开发者可以在该方法里做一些应用初始化工作。 |
| onInactive() | Ability失去焦点时调用onInactive方法,Ability在进入后台状态时会先失去焦点,再进入后台。 | | onInactive() | Ability失去焦点时调用onInactive方法,Ability在进入后台状态时会先失去焦点,再进入后台。 |
| onActive() | Ability切换到前台,并且已经获取焦点时调用onActive方法。 | | onActive() | Ability切换到前台,并且已经获取焦点时调用onActive方法。 |
* 示例 **示例**
开发者需要重写app.js/app.ets 中相关生命周期回调函数,IDE模板默认生成onCreate()和onDestroy()方法,其他方法需要开发者自行实现。 开发者需要重写`app.js/app.ets`中相关生命周期回调函数,IDE模板默认生成`onCreate()``onDestroy()`方法,其他方法需要开发者自行实现。
```javascript ```javascript
export default { export default {
onCreate() { onCreate() {
...@@ -235,6 +243,6 @@ export default { ...@@ -235,6 +243,6 @@ export default {
### 开发实例 ### 开发实例
针对pageAbility开发,有以下示例工程可供参考: 针对pageAbility开发,有以下示例工程可供参考:
- [DMS](https://gitee.com/openharmony/app_samples/tree/master/ability/DMS) [DMS](https://gitee.com/openharmony/app_samples/tree/master/ability/DMS)
在本示例中完整展示了启动本地Ability、启动远程Ability的使用方法。 在本示例中完整展示了启动本地Ability、启动远程Ability的使用方法。
\ No newline at end of file
...@@ -16,10 +16,9 @@ ...@@ -16,10 +16,9 @@
## 开发步骤 ## 开发步骤
### 创建Service<a name="section17436202895812"></a> ### 创建Service
1.Service也是一种Ability,Ability为Service提供了以下生命周期方法,开发者可以重写这些方法,来添加其他Ability请求与Service Ability交互时的处理方法。
1. Service也是一种Ability,Ability为Service提供了以下生命周期方法,开发者可以重写这些方法,来添加其他Ability请求与Service Ability交互时的处理方法。
创建Service的代码示例如下: 创建Service的代码示例如下:
...@@ -43,7 +42,7 @@ ...@@ -43,7 +42,7 @@
} }
``` ```
2.注册Service。 2. 注册Service。
Service也需要在应用配置文件config.json中进行注册,注册类型type需要设置为service。 Service也需要在应用配置文件config.json中进行注册,注册类型type需要设置为service。
...@@ -65,10 +64,8 @@ ...@@ -65,10 +64,8 @@
``` ```
### 启动Service<a name="section944219415599"></a> ### 启动Service
Ability为开发者提供了startAbility()方法来启动另外一个Ability。因为Service也是Ability的一种,开发者同样可以通过将Want传递给该方法来启动Service。 Ability为开发者提供了startAbility()方法来启动另外一个Ability。因为Service也是Ability的一种,开发者同样可以通过将Want传递给该方法来启动Service。
...@@ -92,9 +89,9 @@ var promise = await featureAbility.startAbility( ...@@ -92,9 +89,9 @@ var promise = await featureAbility.startAbility(
); );
``` ```
- 执行上述代码后,Ability将通过startAbility() 方法来启动Service。 执行上述代码后,Ability将通过startAbility() 方法来启动Service。
- 如果Service尚未运行,则系统会先调用onStart()来初始化Service,再回调Service的onCommand()方法来启动Service。 - 如果Service尚未运行,则系统会先调用onStart()来初始化Service,再回调Service的onCommand()方法来启动Service。
- 如果Service正在运行,则系统会直接回调Service的onCommand()方法来启动Service。 - 如果Service正在运行,则系统会直接回调Service的onCommand()方法来启动Service。
...@@ -104,7 +101,7 @@ var promise = await featureAbility.startAbility( ...@@ -104,7 +101,7 @@ var promise = await featureAbility.startAbility(
### 连接本地Service<a name="section126857614018"></a> ### 连接本地Service
如果Service需要与Page Ability或其他应用的Service Ability进行交互,则须创建用于连接的Connection。Service支持其他Ability通过connectAbility()方法与其进行连接。 如果Service需要与Page Ability或其他应用的Service Ability进行交互,则须创建用于连接的Connection。Service支持其他Ability通过connectAbility()方法与其进行连接。
...@@ -183,7 +180,7 @@ export default { ...@@ -183,7 +180,7 @@ export default {
} }
``` ```
### 连接远程Service<a name="section126857614019"></a>(当前仅对系统应用开放) ### 连接远程Service(当前仅对系统应用开放)
如果Service需要与Page Ability或其他应用的Service Ability进行跨设备交互,则须创建用于连接的Connection。Service支持其他Ability通过connectAbility()方法与其进行跨设备连接。 如果Service需要与Page Ability或其他应用的Service Ability进行跨设备交互,则须创建用于连接的Connection。Service支持其他Ability通过connectAbility()方法与其进行跨设备连接。
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
* 配置应用启动类型 * 配置应用启动类型
迁移当前只支持多实例应用,需要在在module.json5中配置launchType字段为standard 迁移当前只支持多实例应用,需要在在module.json5中配置launchType字段为standard
```javascript ```javascript
"launchType": "standard" "launchType": "standard"
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
}, },
``` ```
这个权限需要在应用首次启动的时候弹窗让用户授予,可以通过在ability的onWindowStageCreate中添加如下代码实现 这个权限需要在应用首次启动的时候弹窗让用户授予,可以通过在ability的onWindowStageCreate中添加如下代码实现
```javascript ```javascript
requestPermissions = async () => { requestPermissions = async () => {
......
...@@ -11,7 +11,7 @@ Stage模型是基于API version 9的应用开发模型,对此模型的介绍 ...@@ -11,7 +11,7 @@ Stage模型是基于API version 9的应用开发模型,对此模型的介绍
- 应用迁移,详见[应用迁移开发指导](stage-ability-continuation.md) - 应用迁移,详见[应用迁移开发指导](stage-ability-continuation.md)
## 接口说明 ## 接口说明
AbilityStage功能如下:AbilityStage类,拥有context属性,具体的API详见[接口文档](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-application-abilitystage.md) AbilityStage功能如下(AbilityStage类,拥有context属性,具体的API详见[接口文档](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-application-abilitystage.md)):
**表1** AbilityStage API接口功能介绍 **表1** AbilityStage API接口功能介绍
|接口名|描述| |接口名|描述|
...@@ -20,7 +20,7 @@ AbilityStage功能如下:AbilityStage类,拥有context属性,具体的API ...@@ -20,7 +20,7 @@ AbilityStage功能如下:AbilityStage类,拥有context属性,具体的API
|string onAcceptWant(want: Want)|启动指定Ability时被调用。| |string onAcceptWant(want: Want)|启动指定Ability时被调用。|
|void onConfigurationUpdated(config: Configuration)|全局配置发生变更时被调用。| |void onConfigurationUpdated(config: Configuration)|全局配置发生变更时被调用。|
Ability功能如下:Ability类,具体的API详见[接口文档](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-application-ability.md) Ability功能如下(bility类,具体的API详见[接口文档](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-application-ability.md)):
**表2** Ability API接口功能介绍 **表2** Ability API接口功能介绍
|接口名|描述| |接口名|描述|
...@@ -53,26 +53,27 @@ Ability类拥有context属性,context属性为AbilityContext类,AbilityConte ...@@ -53,26 +53,27 @@ Ability类拥有context属性,context属性为AbilityContext类,AbilityConte
## 开发步骤 ## 开发步骤
### 创建Page Ability应用 ### 创建Page Ability应用
创建Stage模型的Page Ability应用,需实现AbilityStage接口及Ability生命周期接口,并使用窗口提供的方法设置页面。具体示例代码如下: 创建Stage模型的Page Ability应用,需实现AbilityStage接口及Ability生命周期接口,并使用窗口提供的方法设置页面。具体示例代码如下:
1. 导入AbilityStage模块 1. 导入AbilityStage模块
``` ```
import AbilityStage from "@ohos.application.AbilityStage" import AbilityStage from "@ohos.application.AbilityStage"
``` ```
2. 实现AbilityStage接口 2. 实现AbilityStage接口
```ts ```ts
export default class MyAbilityStage extends AbilityStage { export default class MyAbilityStage extends AbilityStage {
onCreate() { onCreate() {
console.log("MyAbilityStage onCreate") console.log("MyAbilityStage onCreate")
} }
} }
``` ```
3. 导入Ability模块 3. 导入Ability模块。
``` ```js
import Ability from '@ohos.application.Ability' import Ability from '@ohos.application.Ability'
``` ```
4. 实现Ability生命周期接口 4. 实现Ability生命周期接口。
`onWindowStageCreate(windowStage)`中通过loadContent接口设置应用要加载的页面,window接口的使用详见[窗口开发指导](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/windowmanager/window-guidelines.md/)
```ts `onWindowStageCreate(windowStage)`中通过loadContent接口设置应用要加载的页面,window接口的使用详见[窗口开发指导](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/windowmanager/window-guidelines.md/)
export default class MainAbility extends Ability { ```ts
export default class MainAbility extends Ability {
onCreate(want, launchParam) { onCreate(want, launchParam) {
console.log("MainAbility onCreate") console.log("MainAbility onCreate")
} }
...@@ -102,8 +103,8 @@ export default class MainAbility extends Ability { ...@@ -102,8 +103,8 @@ export default class MainAbility extends Ability {
onBackground() { onBackground() {
console.log("MainAbility onBackground") console.log("MainAbility onBackground")
} }
} }
``` ```
### 获取AbilityStage及Ability的配置信息 ### 获取AbilityStage及Ability的配置信息
AbilityStage类及Ability类均拥有context属性,应用可以通过`this.context`获取Ability实例的上下文,进而获取详细的配置信息。如下示例展示了AbilityStage通过context属性获取包代码路径、hap包名、ability名以及系统语言的方法。具体示例代码如下: AbilityStage类及Ability类均拥有context属性,应用可以通过`this.context`获取Ability实例的上下文,进而获取详细的配置信息。如下示例展示了AbilityStage通过context属性获取包代码路径、hap包名、ability名以及系统语言的方法。具体示例代码如下:
```ts ```ts
......
...@@ -26,15 +26,16 @@ Caller及Callee功能如下:具体的API详见[接口文档](https://gitee.com ...@@ -26,15 +26,16 @@ Caller及Callee功能如下:具体的API详见[接口文档](https://gitee.com
### 创建Callee被调用端 ### 创建Callee被调用端
Callee被调用端,需要实现指定方法的数据接收回调函数、数据的序列化及反序列化方法。在需要接收数据期间,通过on接口注册监听,无需接收数据时通过off接口解除监听。 Callee被调用端,需要实现指定方法的数据接收回调函数、数据的序列化及反序列化方法。在需要接收数据期间,通过on接口注册监听,无需接收数据时通过off接口解除监听。
1. 配置Ability的启动模式 1. 配置Ability的启动模式
配置module.json5,将Callee被调用端所在的Ability配置为单实例"singleton"。
|Json字段|字段说明| 配置module.json5,将Callee被调用端所在的Ability配置为单实例"singleton"。
|:------|:------|
|"launchType"|Ability的启动模式,设置为"singleton"类型 | |Json字段|字段说明|
|:------|:------|
|"launchType"|Ability的启动模式,设置为"singleton"类型 |
Ability配置标签示例如下: Ability配置标签示例如下:
```json ```json
"abilities":[{ "abilities":[{
"name": ".CalleeAbility", "name": ".CalleeAbility",
"srcEntrance": "./ets/CalleeAbility/CalleeAbility.ts", "srcEntrance": "./ets/CalleeAbility/CalleeAbility.ts",
"launchType": "singleton", "launchType": "singleton",
...@@ -42,16 +43,18 @@ Ability配置标签示例如下: ...@@ -42,16 +43,18 @@ Ability配置标签示例如下:
"icon": "$media:icon", "icon": "$media:icon",
"label": "$string:CalleeAbility_label", "label": "$string:CalleeAbility_label",
"visible": true "visible": true
}] }]
``` ```
2. 导入Ability模块 2. 导入Ability模块
``` ```
import Ability from '@ohos.application.Ability' import Ability from '@ohos.application.Ability'
``` ```
3. 定义约定的序列化数据 3. 定义约定的序列化数据
调用端及被调用端发送接收的数据格式需协商一致,如下示例约定数据由number和string组成。具体示例代码如下: 调用端及被调用端发送接收的数据格式需协商一致,如下示例约定数据由number和string组成。具体示例代码如下:
```ts ```ts
export class MySequenceable { export class MySequenceable {
num: number = 0 num: number = 0
str: String = "" str: String = ""
...@@ -71,13 +74,15 @@ export class MySequenceable { ...@@ -71,13 +74,15 @@ export class MySequenceable {
this.str = messageParcel.readString() this.str = messageParcel.readString()
return true return true
} }
} }
``` ```
4. 实现Callee.on监听及Callee.off解除监听 4. 实现Callee.on监听及Callee.off解除监听
被调用端Callee的监听函数注册时机, 取决于应用开发者。注册监听之前的数据不会被处理,取消监听之后的数据不会被处理。如下示例在Ability的onCreate注册'CalleeSortMethod'监听,在onDestroy取消监听,收到序列化数据后对字符串排序后返回,应用开发者根据实际需要做相应处理。具体示例代码如下:
```ts 被调用端Callee的监听函数注册时机, 取决于应用开发者。注册监听之前的数据不会被处理,取消监听之后的数据不会被处理。如下示例在Ability的onCreate注册'CalleeSortMethod'监听,在onDestroy取消监听,收到序列化数据后对字符串排序后返回,应用开发者根据实际需要做相应处理。具体示例代码如下:
let TAG = '[CalleeAbility] ' ```ts
let method = 'CalleeSortMethod' let TAG = '[CalleeAbility] '
let method = 'CalleeSortMethod'
function CalleeSortFunc(data) { function CalleeSortFunc(data) {
let receiveData = new MySequenceable(0, '') let receiveData = new MySequenceable(0, '')
...@@ -103,23 +108,24 @@ export default class CalleeAbility extends Ability { ...@@ -103,23 +108,24 @@ export default class CalleeAbility extends Ability {
} }
} }
} }
``` ```
### 访问Callee被调用端 ### 访问Callee被调用端
1. 导入Ability模块 1. 导入Ability模块
``` ```
import Ability from '@ohos.application.Ability' import Ability from '@ohos.application.Ability'
``` ```
2. 获取Caller通信接口 2. 获取Caller通信接口
Ability的context属性实现了startAbilityByCall方法,用于获取指定通用组件的Caller通信接口。如下示例通过`this.context`获取Ability实例的context属性,使用startAbilityByCall拉起Callee被调用端并获取Caller通信接口,注册Caller的onRelease监听。应用开发者根据实际需要做相应处理。具体示例代码如下:
```ts Ability的context属性实现了startAbilityByCall方法,用于获取指定通用组件的Caller通信接口。如下示例通过`this.context`获取Ability实例的context属性,使用startAbilityByCall拉起Callee被调用端并获取Caller通信接口,注册Caller的onRelease监听。应用开发者根据实际需要做相应处理。具体示例代码如下:
```ts
let TAG = '[MainAbility] ' let TAG = '[MainAbility] '
var caller = undefined var caller = undefined
let context = this.context let context = this.context
context.startAbilityByCall({ context.startAbilityByCall({
bundleName: 'com.samples.CallApplication', bundleName: 'com.samples.CallApplication',
abilityName: 'CalleeAbility' abilityName: 'CalleeAbility'
}).then((data) => { }).then((data) => {
if (data != null) { if (data != null) {
caller = data caller = data
...@@ -130,21 +136,21 @@ context.startAbilityByCall({ ...@@ -130,21 +136,21 @@ context.startAbilityByCall({
}) })
console.log(TAG + 'caller register OnRelease succeed') console.log(TAG + 'caller register OnRelease succeed')
} }
}).catch((error) => { }).catch((error) => {
console.error(TAG + 'get caller failed with ' + error) console.error(TAG + 'get caller failed with ' + error)
}) })
``` ```
在跨设备场景下,需指定对端设备deviceId。应用开发者 根据实际需要做相应处理。具体示例代码如下:
```ts 在跨设备场景下,需指定对端设备deviceId。应用开发者 根据实际需要做相应处理。具体示例代码如下:
```ts
let TAG = '[MainAbility] ' let TAG = '[MainAbility] '
var caller = undefined var caller = undefined
let context = this.context let context = this.context
context.startAbilityByCall({ context.startAbilityByCall({
deviceId: getRemoteDeviceId(), deviceId: getRemoteDeviceId(),
bundleName: 'com.samples.CallApplication', bundleName: 'com.samples.CallApplication',
abilityName: 'CalleeAbility' abilityName: 'CalleeAbility'
}).then((data) => { }).then((data) => {
if (data != null) { if (data != null) {
caller = data caller = data
console.log(TAG + 'get remote caller success') console.log(TAG + 'get remote caller success')
...@@ -154,12 +160,13 @@ context.startAbilityByCall({ ...@@ -154,12 +160,13 @@ context.startAbilityByCall({
}) })
console.log(TAG + 'remote caller register OnRelease succeed') console.log(TAG + 'remote caller register OnRelease succeed')
} }
}).catch((error) => { }).catch((error) => {
console.error(TAG + 'get remote caller failed with ' + error) console.error(TAG + 'get remote caller failed with ' + error)
}) })
``` ```
从DeviceManager获取指定设备的deviceId,具体示例代码如下:
```ts 从DeviceManager获取指定设备的deviceId,具体示例代码如下:
```ts
import deviceManager from '@ohos.distributedHardware.deviceManager'; import deviceManager from '@ohos.distributedHardware.deviceManager';
var dmClass; var dmClass;
function getRemoteDeviceId() { function getRemoteDeviceId() {
...@@ -175,9 +182,11 @@ function getRemoteDeviceId() { ...@@ -175,9 +182,11 @@ function getRemoteDeviceId() {
console.log("MainAbility onButtonClick getRemoteDeviceId err: dmClass is null"); console.log("MainAbility onButtonClick getRemoteDeviceId err: dmClass is null");
} }
} }
``` ```
在跨设备场景下,需要向用户申请数据同步的权限。具体示例代码如下:
```ts 在跨设备场景下,需要向用户申请数据同步的权限。具体示例代码如下:
```ts
let context = this.context let context = this.context
let permissions = ohos.permission.DISTRIBUTED_DATASYNC let permissions = ohos.permission.DISTRIBUTED_DATASYNC
context.requestPermissionsFromUser(permissions).then((data) => { context.requestPermissionsFromUser(permissions).then((data) => {
...@@ -185,24 +194,26 @@ context.requestPermissionsFromUser(permissions).then((data) => { ...@@ -185,24 +194,26 @@ context.requestPermissionsFromUser(permissions).then((data) => {
}).catch((error) => { }).catch((error) => {
console.log("Failed to request permission from user with error: "+ JSON.stringify(error)) console.log("Failed to request permission from user with error: "+ JSON.stringify(error))
}) })
``` ```
3. 发送约定序列化数据 3. 发送约定序列化数据
向被调用端发送Sequenceable数据有两种方式,一种是不带返回值,一种是获取被调用端返回的数据,method以及序列化数据需要与被调用端协商一致。如下示例调用Call接口,向Calee被调用端发送数据。具体示例代码如下:
```ts 向被调用端发送Sequenceable数据有两种方式,一种是不带返回值,一种是获取被调用端返回的数据,method以及序列化数据需要与被调用端协商一致。如下示例调用Call接口,向Calee被调用端发送数据。具体示例代码如下:
let method = 'CalleeSortMethod' ```ts
let msg = new MySequenceable(1, 'call_str') let method = 'CalleeSortMethod'
caller.call(method, msg).then(() => { let msg = new MySequenceable(1, 'call_str')
caller.call(method, msg).then(() => {
console.log(TAG + 'caller call succeed') console.log(TAG + 'caller call succeed')
}).catch((error) => { }).catch((error) => {
console.error(TAG + 'caller call failed with ' + error) console.error(TAG + 'caller call failed with ' + error)
}) })
``` ```
如下示例调用CallWithResult接口,向Calee被调用端发送待处理的数据,并将method方法处理完毕的数据赋值给callback。具体示例代码如下: 如下示例调用CallWithResult接口,向Calee被调用端发送待处理的数据,并将method方法处理完毕的数据赋值给callback。具体示例代码如下:
```ts ```ts
let method = 'CalleeSortMethod' let method = 'CalleeSortMethod'
let msg = new MySequenceable(1, sortString) let msg = new MySequenceable(1, sortString)
caller.callWithResult(method, msg) caller.callWithResult(method, msg)
.then((data) => { .then((data) => {
let resultMsg = new MySequenceable(0, '') let resultMsg = new MySequenceable(0, '')
data.readSequenceable(resultMsg) data.readSequenceable(resultMsg)
...@@ -210,19 +221,20 @@ caller.callWithResult(method, msg) ...@@ -210,19 +221,20 @@ caller.callWithResult(method, msg)
console.log(TAG + 'caller result is [' + resultMsg.num + ',' + resultMsg.str + ']') console.log(TAG + 'caller result is [' + resultMsg.num + ',' + resultMsg.str + ']')
}).catch((error) => { }).catch((error) => {
console.error(TAG + 'caller callWithResult failed with ' + error) console.error(TAG + 'caller callWithResult failed with ' + error)
}) })
``` ```
4. 释放Caller通信接口 4. 释放Caller通信接口
Caller不再使用后,应用开发者可以通过release接口释放Caller。具体示例代码如下:
```ts Caller不再使用后,应用开发者可以通过release接口释放Caller。具体示例代码如下:
try { ```ts
try {
caller.release() caller.release()
caller = undefined caller = undefined
console.log(TAG + 'caller release succeed') console.log(TAG + 'caller release succeed')
} catch (error) { } catch (error) {
console.error(TAG + 'caller release failed with ' + error) console.error(TAG + 'caller release failed with ' + error)
} }
``` ```
## 开发实例 ## 开发实例
针对Stage模型本地Call功能开发,有以下示例工程可供参考: 针对Stage模型本地Call功能开发,有以下示例工程可供参考:
......
...@@ -6,11 +6,11 @@ ...@@ -6,11 +6,11 @@
### 入门 ### 入门
[入门部分](quick-start/Readme-CN.md)可以帮助开发者了解应用开发的基本方法。 [入门部分](quick-start/Readme-CN.md)可以帮助开发者了解应用开发的基本方法。
这一部分包含了IDE工具DevEco Studio的基本使用方法,以及快速构建首个应用的快速入门。 这一部分包含了IDE工具DevEco Studio的基本使用方法,以及快速构建首个应用的快速入门。
此外,还在此部分详述了OpenHarmony应用的包结构,以及资源文件的使用指导。 此外,还在此部分详述了OpenHarmony应用程序的包结构,以及资源文件的使用指导。
### 开发 ### 开发
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
- 应用程序的框架:[Ability开发](ability/Readme-CN.md) - 应用程序的框架:[Ability开发](ability/Readme-CN.md)
- UI的框架:[UI开发](ui/Readme-CN.md) - UI的框架:[UI开发](ui/Readme-CN.md)
所有应用都应该在这两个框架下填充和完善功能内容 所有应用都应该在这两个框架的基础之上进行功能的开发
在此基础上,还提供了如下功能的开发指导: 在此基础上,还提供了如下功能的开发指导:
- [窗口管理](windowmanager/Readme-CN.md) - [窗口管理](windowmanager/Readme-CN.md)
......
...@@ -161,20 +161,20 @@ default、phone、tablet、tv、car、wearable、liteWearble等对象的内部 ...@@ -161,20 +161,20 @@ default、phone、tablet、tv、car、wearable、liteWearble等对象的内部
| 属性名称 | 含义 | 数据类型 | 是否可缺省 | | 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ---------- | -------------------------------- | -------- | ------------------------------ | | ---------- | -------------------------------- | -------- | ------------------------------ |
| reqVersion | 支持应用的maple版本号。参考表8。 | 对象 | 不可缺省 | | reqVersion | 支持应用的maple版本号。参考表8。 | 对象 | 不可缺省 |
| flag | 指定maple应用程序的类型 | 字符串 | 不可缺省且只能为"m","mo","z" | | flag | 指定maple应用程序的类型 | 字符串 | 不可缺省且只能为"m","mo","z" |
表8 reqVersion对象内部结构说明 表8 reqVersion对象内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 | | 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ---------- | -------------------------------------------------------- | -------- | ---------- | | ---------- | --------------------------------------------------------- | -------- | ---------- |
| compatible | 表示支持应用程序的最低maple版本,采用32位无符号整形表示。 | 整数 | 不可缺省 | | compatible | 表示支持应用程序的最低maple版本采用32位无符号整形表示。 | 整数 | 不可缺省 |
| target | 指定maple应用程序的类型,采用32位无符号整形表示。 | 整数 | 不可缺省 | | target | 指定maple应用程序的类型采用32位无符号整形表示。 | 整数 | 不可缺省 |
表9 network对象的内部结构说明 表9 network对象的内部结构说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 | | 属性名称 | 含义 | 数据类型 | 是否可缺省 |
| ---------------- | ------------------------------------------------------------ | -------- | ----------------------- | | ---------------- | ------------------------------------------------------------ | -------- | ----------------------- |
| cleartextTraffic | 表示是否允许应用使用明文网络流量(例如,明文HTTP)<br /> true:允许应用使用明文流量请求。<br /> false:拒绝应用使用明文流量的请求。 | 布尔值 | 可缺省,缺省值为"false" | | cleartextTraffic | 表示是否允许应用使用明文网络流量(例如,明文HTTP)<br /> true:允许应用使用明文流量请求。<br /> false:拒绝应用使用明文流量的请求。 | 布尔值 | 可缺省,缺省值为"false" |
| securityConfig | 表示应用的网络安全配置信息。参考表10。 | 对象 | 可缺省,缺省为空 | | securityConfig | 表示应用的网络安全配置信息。参考表10。 | 对象 | 可缺省,缺省为空 |
表10 securityConfig对象的内部结构说明 表10 securityConfig对象的内部结构说明
...@@ -182,8 +182,8 @@ default、phone、tablet、tv、car、wearable、liteWearble等对象的内部 ...@@ -182,8 +182,8 @@ default、phone、tablet、tv、car、wearable、liteWearble等对象的内部
| 属性名称 | 子属性名称 | 含义 | 数据类型 | 是否可缺省 | | 属性名称 | 子属性名称 | 含义 | 数据类型 | 是否可缺省 |
| -------------- | ------------------ | ------------------------------------------------------------ | -------- | ---------------- | | -------------- | ------------------ | ------------------------------------------------------------ | -------- | ---------------- |
| domainSettings | - | 表示自定义的网域范围的安全配置,支持多层嵌套,即一个domainSettings对象中允许嵌套更小网域范围的domainSettings对象。 | 对象类型 | 可缺省,缺省为空 | | domainSettings | - | 表示自定义的网域范围的安全配置,支持多层嵌套,即一个domainSettings对象中允许嵌套更小网域范围的domainSettings对象。 | 对象类型 | 可缺省,缺省为空 |
| | cleartextPermitted | 表示自定义的网域范围内是否允许明文流量传输。当cleartextTraffic和security同时存在时,自定义网域是否允许明文流量传输以cleartextPermitted的取值为准。<br />true:允许明文流量传输。<br />false:拒绝明文流量传输 | 布尔类型 | 否 | | | cleartextPermitted | 表示自定义的网域范围内是否允许明文流量传输。当cleartextTraffic和security同时存在时,自定义网域是否允许明文流量传输以cleartextPermitted的取值为准。<br />true:允许明文流量传输。<br />false:拒绝明文流量传输 | 布尔类型 | 否 |
| | domains | 表示域名配置信息,包含两个参数:subdomains和name。<br /> subdomains(布尔类型):表示是否包含子域名。如果为"true",此网域规则将与相应网域及所有子网域(包括子网域的子网域)匹配。否则,该规则仅适用于精确匹配项。<br /> name(字符串):表示域名名称 | 对象数组 | 否 | | | domains | 表示域名配置信息,包含两个参数:subdomains和name。<br /> subdomains(布尔类型):表示是否包含子域名。如果为"true",此网域规则将与相应网域及所有子网域(包括子网域的子网域)匹配。否则,该规则仅适用于精确匹配项。<br /> name(字符串):表示域名名称 | 对象数组 | 否 |
deviceConfig示例: deviceConfig示例:
...@@ -235,7 +235,7 @@ module对象包含HAP包的配置信息,内部结构说明参见表11。 ...@@ -235,7 +235,7 @@ module对象包含HAP包的配置信息,内部结构说明参见表11。
| reqCapabilities | 表示运行应用程序所需的设备能力 | 字符串数组 | 可缺省,缺省为空 | | reqCapabilities | 表示运行应用程序所需的设备能力 | 字符串数组 | 可缺省,缺省为空 |
| commonEvents | 静态广播,参考表35。 | 对象数组 | 可缺省,缺省为空 | | commonEvents | 静态广播,参考表35。 | 对象数组 | 可缺省,缺省为空 |
| allowClassMap | HAP的元信息。标记值为true或false。如果标记值为true,则hap使用OpenHarmony框架提供的Java对象代理机制。默认值为false。 | 布尔值 | 不可缺省,缺省值为false | | allowClassMap | HAP的元信息。标记值为true或false。如果标记值为true,则hap使用OpenHarmony框架提供的Java对象代理机制。默认值为false。 | 布尔值 | 不可缺省,缺省值为false |
| entryTheme | 此标签表示OpenHarmony内部主题的关键字。将标记值设置为名称的资源索引 | 字符串 | 可缺省,缺省值为空 | | entryTheme | 此标签表示OpenHarmony内部主题的关键字。将标记值设置为名称的资源索引 | 字符串 | 可缺省,缺省值为空 |
module示例: module示例:
......
...@@ -61,6 +61,12 @@ SystemCapability.Ability.Form ...@@ -61,6 +61,12 @@ SystemCapability.Ability.Form
| formId | string | 是 | 卡片标识 | | formId | string | 是 | 卡片标识 |
| minute | number | 是 | 指定多久之后更新,单位分钟,大于等于5 | | minute | number | 是 | 指定多久之后更新,单位分钟,大于等于5 |
**返回值:**
| 类型 | 说明 |
| ------------- | ---------------------------------- |
| Promise\<void> |Promise实例,用于获取异步返回结果。 |
**示例:** **示例:**
```js ```js
...@@ -118,6 +124,12 @@ SystemCapability.Ability.Form ...@@ -118,6 +124,12 @@ SystemCapability.Ability.Form
| formId | string | 是 | 请求更新的卡片标识 | | formId | string | 是 | 请求更新的卡片标识 |
| formBindingData | [FormBindingData](js-apis-formbindingdata.md#formbindingdata) | 是 | 用于更新的数据 | | formBindingData | [FormBindingData](js-apis-formbindingdata.md#formbindingdata) | 是 | 用于更新的数据 |
**返回值:**
| 类型 | 说明 |
| -------------- | ----------------------------------- |
| Promise\<void> | Promise实例,用于获取异步返回结果。 |
**示例:** **示例:**
```js ```js
......
...@@ -22,19 +22,20 @@ publishReminder(reminderReq: ReminderRequest, callback: AsyncCallback&lt;number& ...@@ -22,19 +22,20 @@ publishReminder(reminderReq: ReminderRequest, callback: AsyncCallback&lt;number&
发布一个后台代理提醒,使用callback方式实现异步调用。 发布一个后台代理提醒,使用callback方式实现异步调用。
- 系统能力 **系统能力**: SystemCapability.Notification.ReminderAgent
SystemCapability.Notification.ReminderAgent **参数**
- 参数
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| reminderReq | [ReminderRequest](#reminderrequest) | 是 | 需要发布的提醒实例。 | | reminderReq | [ReminderRequest](#reminderrequest) | 是 | 需要发布的提醒实例。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 异步回调,返回当前发布的提醒的reminderId。 | | callback | AsyncCallback&lt;number&gt; | 是 | 异步回调,返回当前发布的提醒的reminderId。 |
- 示例 **示例**
``` ```
export default { data: {timer: { export default {
data: {
timer: {
reminderType: reminderAgent.ReminderType.REMINDER_TYPE_TIMER, reminderType: reminderAgent.ReminderType.REMINDER_TYPE_TIMER,
triggerTimeInSeconds: 3 triggerTimeInSeconds: 3
} }
...@@ -53,23 +54,23 @@ publishReminder(reminderReq: ReminderRequest): Promise&lt;number&gt; ...@@ -53,23 +54,23 @@ publishReminder(reminderReq: ReminderRequest): Promise&lt;number&gt;
发布一个后台代理提醒,使用Promise方式实现异步调用。 发布一个后台代理提醒,使用Promise方式实现异步调用。
- 系统能力 **系统能力**: SystemCapability.Notification.ReminderAgent
SystemCapability.Notification.ReminderAgent **参数**
- 参数
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| reminderReq | [ReminderRequest](#reminderrequest) | 是 | 需要发布的提醒实例。 | | reminderReq | [ReminderRequest](#reminderrequest) | 是 | 需要发布的提醒实例。 |
- 返回值 **返回值**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| Promise&lt;number&gt; | 返回提醒的reminderId。 | | Promise&lt;number&gt; | 返回提醒的reminderId。 |
- 示例 **示例**
``` ```
export default { data: {timer: { export default {
data:
{timer: {
reminderType: reminderAgent.ReminderType.REMINDER_TYPE_TIMER, reminderType: reminderAgent.ReminderType.REMINDER_TYPE_TIMER,
triggerTimeInSeconds: 3 triggerTimeInSeconds: 3
} }
...@@ -89,22 +90,21 @@ cancelReminder(reminderId: number, callback: AsyncCallback&lt;void&gt;): void ...@@ -89,22 +90,21 @@ cancelReminder(reminderId: number, callback: AsyncCallback&lt;void&gt;): void
取消指定id的提醒,使用callback方式实现异步调用。 取消指定id的提醒,使用callback方式实现异步调用。
- 系统能力 **系统能力**: SystemCapability.Notification.ReminderAgent
SystemCapability.Notification.ReminderAgent
- 参数 **参数**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| reminderId | number | 是 | 目标reminder的id号。 | | reminderId | number | 是 | 目标reminder的id号。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 异步回调。 | | callback | AsyncCallback&lt;void&gt; | 是 | 异步回调。 |
- 示例 **示例**
``` ```
export default { export default {
cancel() { reminderAgent.cancelReminder(1, (err, data) => { cancel() {
reminderAgent.cancelReminder(1, (err, data) => {
console.log("do next"); console.log("do next");
}); });
} }
...@@ -118,23 +118,21 @@ cancelReminder(reminderId: number): Promise&lt;void&gt; ...@@ -118,23 +118,21 @@ cancelReminder(reminderId: number): Promise&lt;void&gt;
取消指定id的提醒,使用Promise方式实现异步调用。 取消指定id的提醒,使用Promise方式实现异步调用。
- 系统能力 **系统能力**: SystemCapability.Notification.ReminderAgent
SystemCapability.Notification.ReminderAgent **参数**
- 参数
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| reminderId | number | 是 | 目标reminder的id号。 | | reminderId | number | 是 | 目标reminder的id号。 |
- 返回值 **返回值**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| Promise&lt;void&gt; | Promise类型异步回调。 | | Promise&lt;void&gt; | Promise类型异步回调。 |
- 示例 **示例**
``` ```
export default { export default {
...@@ -153,17 +151,15 @@ getValidReminders(callback: AsyncCallback&lt;Array&lt;ReminderRequest&gt;&gt;): ...@@ -153,17 +151,15 @@ getValidReminders(callback: AsyncCallback&lt;Array&lt;ReminderRequest&gt;&gt;):
获取当前应用已设置的所有有效(未过期)的提醒,使用callback方式实现异步调用。 获取当前应用已设置的所有有效(未过期)的提醒,使用callback方式实现异步调用。
- 系统能力 **系统能力**: SystemCapability.Notification.ReminderAgent
SystemCapability.Notification.ReminderAgent
- 参数 **参数**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;Array&lt;[ReminderRequest](#reminderrequest)&gt;&gt; | 是 | 异步回调,返回当前应用已设置的所有有效(未过期)的提醒。 | | callback | AsyncCallback&lt;Array&lt;[ReminderRequest](#reminderrequest)&gt;&gt; | 是 | 异步回调,返回当前应用已设置的所有有效(未过期)的提醒。 |
- 示例 **示例**
``` ```
reminderAgent.getValidReminders((err, reminders) => { reminderAgent.getValidReminders((err, reminders) => {
...@@ -198,17 +194,15 @@ getValidReminders(): Promise&lt;Array&lt;ReminderRequest&gt;&gt; ...@@ -198,17 +194,15 @@ getValidReminders(): Promise&lt;Array&lt;ReminderRequest&gt;&gt;
获取当前应用已设置的所有有效(未过期)的提醒,使用Promise方式实现异步调用。 获取当前应用已设置的所有有效(未过期)的提醒,使用Promise方式实现异步调用。
- 系统能力 **系统能力**: SystemCapability.Notification.ReminderAgent
SystemCapability.Notification.ReminderAgent
- 返回值 **返回值**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| Promise&lt;Array&lt;[ReminderRequest](#reminderrequest)&gt;&gt; | 返回当前应用已设置的所有有效(未过期)的提醒。 | | Promise&lt;Array&lt;[ReminderRequest](#reminderrequest)&gt;&gt; | 返回当前应用已设置的所有有效(未过期)的提醒。 |
- 示例 **示例**
``` ```
reminderAgent.getValidReminders().then((reminders) => { reminderAgent.getValidReminders().then((reminders) => {
...@@ -243,17 +237,15 @@ cancelAllReminders(callback: AsyncCallback&lt;void&gt;): void ...@@ -243,17 +237,15 @@ cancelAllReminders(callback: AsyncCallback&lt;void&gt;): void
取消当前应用所有的提醒,使用callback方式实现异步调用。 取消当前应用所有的提醒,使用callback方式实现异步调用。
- 系统能力 **系统能力**: SystemCapability.Notification.ReminderAgent
SystemCapability.Notification.ReminderAgent **参数**
- 参数
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;void&gt; | 是 | 异步回调。 | | callback | AsyncCallback&lt;void&gt; | 是 | 异步回调。 |
- 示例 **示例**
``` ```
reminderAgent.cancelAllReminders((err, data) =>{ reminderAgent.cancelAllReminders((err, data) =>{
...@@ -267,17 +259,15 @@ cancelAllReminders(): Promise&lt;void&gt; ...@@ -267,17 +259,15 @@ cancelAllReminders(): Promise&lt;void&gt;
取消当前应用所有的提醒,使用Promise方式实现异步调用。 取消当前应用所有的提醒,使用Promise方式实现异步调用。
- 系统能力 **系统能力**: SystemCapability.Notification.ReminderAgent
SystemCapability.Notification.ReminderAgent
- 返回值 **返回值**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| Promise&lt;void&gt; | Promise类型异步回调。 | | Promise&lt;void&gt; | Promise类型异步回调。 |
- 示例 **示例**
``` ```
reminderAgent.cancelAllReminders().then(() => { reminderAgent.cancelAllReminders().then(() => {
...@@ -291,18 +281,16 @@ addNotificationSlot(slot: NotificationSlot, callback: AsyncCallback&lt;void&gt;) ...@@ -291,18 +281,16 @@ addNotificationSlot(slot: NotificationSlot, callback: AsyncCallback&lt;void&gt;)
添加一个NotificationSlot,使用callback方式实现异步调用。 添加一个NotificationSlot,使用callback方式实现异步调用。
- 系统能力 **系统能力**: SystemCapability.Notification.ReminderAgent
SystemCapability.Notification.ReminderAgent
- 参数 **参数**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| slot | [NotificationSlot](js-apis-notification.md#notificationslot) | 是 | notification&nbsp;slot实例。 | | slot | [NotificationSlot](js-apis-notification.md#notificationslot) | 是 | notification&nbsp;slot实例。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 异步回调。 | | callback | AsyncCallback&lt;void&gt; | 是 | 异步回调。 |
- 示例 **示例**
``` ```
export default { data: { mySlot: { export default { data: { mySlot: {
...@@ -324,23 +312,21 @@ addNotificationSlot(slot: NotificationSlot): Promise&lt;void&gt; ...@@ -324,23 +312,21 @@ addNotificationSlot(slot: NotificationSlot): Promise&lt;void&gt;
添加一个NotificationSlot,使用Promise方式实现异步调用。 添加一个NotificationSlot,使用Promise方式实现异步调用。
- 系统能力 **系统能力**: SystemCapability.Notification.ReminderAgent
SystemCapability.Notification.ReminderAgent **参数**
- 参数
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| slot | [NotificationSlot](js-apis-notification.md#notificationslot) | 是 | notification&nbsp;slot实例。 | | slot | [NotificationSlot](js-apis-notification.md#notificationslot) | 是 | notification&nbsp;slot实例。 |
- 返回值 **返回值**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| Promise&lt;void&gt; | Promise类型异步回调。 | | Promise&lt;void&gt; | Promise类型异步回调。 |
- 示例 **示例**
``` ```
export default { data: { mySlot: { export default { data: { mySlot: {
...@@ -362,18 +348,16 @@ removeNotificationSlot(slotType: notification.SlotType, callback: AsyncCallback& ...@@ -362,18 +348,16 @@ removeNotificationSlot(slotType: notification.SlotType, callback: AsyncCallback&
删除目标NotificationSlot,使用callback方式实现异步调用。 删除目标NotificationSlot,使用callback方式实现异步调用。
- 系统能力 **系统能力**: SystemCapability.Notification.ReminderAgent
SystemCapability.Notification.ReminderAgent
- 参数 **参数**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| slotType | [notification.SlotType](js-apis-notification.md#slottype) | 是 | 目标notification&nbsp;slot的类型。 | | slotType | [notification.SlotType](js-apis-notification.md#slottype) | 是 | 目标notification&nbsp;slot的类型。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 异步回调。 | | callback | AsyncCallback&lt;void&gt; | 是 | 异步回调。 |
- 示例 **示例**
``` ```
export default { export default {
...@@ -391,23 +375,21 @@ removeNotificationSlot(slotType: notification.SlotType): Promise&lt;void&gt; ...@@ -391,23 +375,21 @@ removeNotificationSlot(slotType: notification.SlotType): Promise&lt;void&gt;
删除目标NotificationSlot,使用Promise方式实现异步调用。 删除目标NotificationSlot,使用Promise方式实现异步调用。
- 系统能力 **系统能力**: SystemCapability.Notification.ReminderAgent
SystemCapability.Notification.ReminderAgent
- 参数 **参数**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| slotType | [notification.SlotType](js-apis-notification.md#slottype) | 是 | 目标notification&nbsp;slot的类型。 | | slotType | [notification.SlotType](js-apis-notification.md#slottype) | 是 | 目标notification&nbsp;slot的类型。 |
- 返回值 **返回值**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| Promise&lt;void&gt; | Promise类型异步回调。 | | Promise&lt;void&gt; | Promise类型异步回调。 |
- 示例 **示例**
``` ```
export default { export default {
...@@ -423,7 +405,7 @@ export default { ...@@ -423,7 +405,7 @@ export default {
按钮的类型。 按钮的类型。
- 系统能力:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent **系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
| 名称 | 默认值 | 说明 | | 名称 | 默认值 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
...@@ -435,7 +417,7 @@ export default { ...@@ -435,7 +417,7 @@ export default {
提醒的类型。 提醒的类型。
- 系统能力:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent **系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
| 名称 | 默认值 | 说明 | | 名称 | 默认值 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
...@@ -448,7 +430,7 @@ export default { ...@@ -448,7 +430,7 @@ export default {
用于设置弹出的提醒通知信息上显示的按钮类型和标题。 用于设置弹出的提醒通知信息上显示的按钮类型和标题。
- 系统能力:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent **系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
| 名称 | 参数类型 | 必填 | 说明 | | 名称 | 参数类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -460,7 +442,7 @@ export default { ...@@ -460,7 +442,7 @@ export default {
点击提醒通知后跳转的目标ability信息。 点击提醒通知后跳转的目标ability信息。
- 系统能力:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent **系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
| 名称 | 参数类型 | 必填 | 说明 | | 名称 | 参数类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -472,7 +454,7 @@ export default { ...@@ -472,7 +454,7 @@ export default {
提醒到达时自动拉起的目标ability信息。 提醒到达时自动拉起的目标ability信息。
- 系统能力:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent **系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
| 名称 | 参数类型 | 必填 | 说明 | | 名称 | 参数类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -484,7 +466,7 @@ export default { ...@@ -484,7 +466,7 @@ export default {
提醒实例对象,用于设置提醒类型、响铃时长等具体信息。 提醒实例对象,用于设置提醒类型、响铃时长等具体信息。
- 系统能力:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent **系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
| 名称 | 参数类型 | 必填 | 说明 | | 名称 | 参数类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -509,7 +491,7 @@ ReminderRequestCalendar extends ReminderRequest ...@@ -509,7 +491,7 @@ ReminderRequestCalendar extends ReminderRequest
日历实例对象,用于设置提醒的时间。 日历实例对象,用于设置提醒的时间。
- 系统能力:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent **系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
| 名称 | 参数类型 | 必填 | 说明 | | 名称 | 参数类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -524,7 +506,7 @@ ReminderRequestAlarm extends ReminderRequest ...@@ -524,7 +506,7 @@ ReminderRequestAlarm extends ReminderRequest
闹钟实例对象,用于设置提醒的时间。 闹钟实例对象,用于设置提醒的时间。
- 系统能力:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent **系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
| 名称 | 参数类型 | 必填 | 说明 | | 名称 | 参数类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -539,7 +521,7 @@ ReminderRequestTimer extends ReminderRequest ...@@ -539,7 +521,7 @@ ReminderRequestTimer extends ReminderRequest
倒计时实例对象,用于设置提醒的时间。 倒计时实例对象,用于设置提醒的时间。
- 系统能力:SystemCapability.Notification.ReminderAgent **系统能力**:SystemCapability.Notification.ReminderAgent
| 名称 | 参数类型 | 必填 | 说明 | | 名称 | 参数类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -550,7 +532,7 @@ ReminderRequestTimer extends ReminderRequest ...@@ -550,7 +532,7 @@ ReminderRequestTimer extends ReminderRequest
用于日历类提醒设置时指定时间信息。 用于日历类提醒设置时指定时间信息。
- 系统能力:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent **系统能力**:以下各项对应的系统能力均为SystemCapability.Notification.ReminderAgent
| 名称 | 参数类型 | 必填 | 说明 | | 名称 | 参数类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
......
...@@ -638,6 +638,12 @@ cancel(agent: WantAgent): Promise\<void\> ...@@ -638,6 +638,12 @@ cancel(agent: WantAgent): Promise\<void\>
| ----- | --- | ---- | --------- | ---- | ------------- | | ----- | --- | ---- | --------- | ---- | ------------- |
| agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 | | agent | 是 | 否 | WantAgent | 是 | WantAgent对象。 |
**返回值:**
| 类型 | 说明 |
| --------------- | ------------------------------- |
| Promise\<void\> | 以Promise形式获取异步返回结果。 |
**示例:** **示例:**
```js ```js
......
# UI # UI开发
- [方舟开发框架(ArkUI)概述](arkui-overview.md) - [方舟开发框架(ArkUI)概述](arkui-overview.md)
- 基于JS扩展的类Web开发范式 - 基于JS扩展的类Web开发范式
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册