提交 ab5640e0 编写于 作者: R RayShih

fix review mistakes

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