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

!12789 【元能力】AppStateData等开发文档优化

Merge pull request !12789 from HuangXW/DocModify
......@@ -4,25 +4,32 @@
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
**系统API**该接口为系统接口,三方应用不支持调用。
**系统API**本模块被标记为@systemapi,对三方应用隐藏
| 名称 | 类型 | 必填 | 说明 |
| ----------- | -------- | ---- | ------------------------------------------------------------ |
| bundleName<sup>8+</sup> | string | 否 | 包名。 |
| uid<sup>8+</sup> | number | 否 | 用户ID。 |
| state<sup>8+</sup> | number | 否 | 应用状态。 |
| 名称 | 类型 | 必填 | 说明 |
| ------------------------- | ------ | ---- | --------- |
| bundleName<sup>8+</sup> | string | 否 | 包名。 |
| uid<sup>8+</sup> | number | 否 | 应用程序的uid。 |
| state<sup>8+</sup> | number | 否 | 应用状态。<br>0:初始化状态,应用正在初始化<br>1:就绪状态,应用已初始化完毕<br>2:前台状态,应用位于前台<br>3:获焦状态。(预留状态,当前暂不支持)<br>4:后台状态,应用位于后台<br>5:退出状态,应用已退出 |
**示例:**
```ts
import appManager from "@ohos.application.appManager"
import appManager from "@ohos.app.ability.appManager"
appManager.getForegroundApplications((error, data) => {
for (let i = 0; i < data.length; i++) {
let appStateData = data[i];
console.info('appStateData.bundleName: ' + appStateData.bundleName);
console.info('appStateData.uid: ' + appStateData.uid);
console.info('appStateData.state: ' + appStateData.state);
}
});
function getForegroundAppInfos() {
appManager.getForegroundApplications((error, data) => {
if (error && error.code) {
console.log('getForegroundApplications failed, error.code: ' + JSON.stringify(error.code) +
' error.message: ' + JSON.stringify(error.message));
return;
}
for (let i = 0; i < data.length; i++) {
let appStateData = data[i];
console.log('appStateData.bundleName: ' + appStateData.bundleName);
console.log('appStateData.uid: ' + appStateData.uid);
console.log('appStateData.state: ' + appStateData.state);
}
});
}
```
......@@ -3,21 +3,21 @@
BaseContext抽象类用于表示继承的子类Context是Stage模型还是FA模型。
> **说明:**
>
>
> 本模块首批接口从API version 8 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | ------ | ---- | ---- | ------- |
| stageMode | boolean | 是 | 是 | 表示Stage模型还是FA模型。 |
| stageMode | boolean | 是 | 是 | 表示是否Stage模型。<br>true:Stage模型<br>false:FA模型。 |
**示例:**
```ts
class MyContext extends BaseContext {
constructor(stageMode) {
this.stageMode = stageMode;
}
}
```
\ No newline at end of file
```
# Context模块
# Context
Context模块提供了ability或application的上下文的能力,包括访问特定应用程序的资源等。
> **说明:**
>
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> 本模块接口仅可在Stage模型下使用。
> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> - 本模块接口仅可在Stage模型下使用。
## 属性
......@@ -25,12 +25,13 @@ Context模块提供了ability或application的上下文的能力,包括访问
| eventHub | string | 是 | 否 | 事件中心,提供订阅、取消订阅、触发事件对象。 |
| area | [AreaMode](#areamode) | 是 | 否 | 文件分区信息。 |
## Context.createBundleContext
createBundleContext(bundleName: string): Context;
根据包名创建安装包的上下文Context。
根据包名创建安装包的上下文。
**需要权限**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
......@@ -44,19 +45,32 @@ createBundleContext(bundleName: string): Context;
| 类型 | 说明 |
| -------- | -------- |
| Context | 安装包的上下文Context。 |
| Context | 安装包的上下文。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md)
**示例:**
```ts
let bundleContext = this.context.createBundleContext("com.example.test");
let bundleContext;
try {
bundleContext = this.context.createBundleContext("com.example.test");
} catch (error) {
console.log('createBundleContext failed, error.code: ' + JSON.stringify(error.code) +
' error.message: ' + JSON.stringify(error.message));
}
```
## Context.createModuleContext
createModuleContext(moduleName: string): Context;
根据模块名创建上下文Context
根据模块名创建上下文。
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
......@@ -70,17 +84,30 @@ createModuleContext(moduleName: string): Context;
| 类型 | 说明 |
| -------- | -------- |
| Context | 上下文Context。 |
| Context | 模块的上下文。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md)
**示例:**
```ts
let moduleContext = this.context.createModuleContext("entry");
let moduleContext;
try {
moduleContext = this.context.createModuleContext("entry");
} catch (error) {
console.log('createModuleContext failed, error.code: ' + JSON.stringify(error.code) +
' error.message: ' + JSON.stringify(error.message));
}
```
createModuleContext(bundleName: string, moduleName: string): Context;
根据包名和模块名创建上下文Context
根据包名和模块名创建上下文。
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
......@@ -95,19 +122,32 @@ createModuleContext(bundleName: string, moduleName: string): Context;
| 类型 | 说明 |
| -------- | -------- |
| Context | 上下文Context。 |
| Context | 模块的上下文。 |
**错误码:**
| 错误码ID | 错误信息 |
| ------- | -------------------------------- |
| 401 | If the input parameter is not valid parameter. |
其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md)
**示例:**
```ts
let moduleContext = this.context.createModuleContext("com.example.test", "entry");
let moduleContext;
try {
moduleContext = this.context.createModuleContext("com.example.test", "entry");
} catch (error) {
console.log('createModuleContext failed, error.code: ' + JSON.stringify(error.code) +
' error.message: ' + JSON.stringify(error.message));
}
```
## Context.getApplicationContext
getApplicationContext(): ApplicationContext;
获取应用上下文Context
获取本应用的应用上下文
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
......@@ -115,12 +155,18 @@ getApplicationContext(): ApplicationContext;
| 类型 | 说明 |
| -------- | -------- |
| Context | 应用上下文Context。 |
| [ApplicationContext](js-apis-inner-application-applicationContext.md) | 应用上下文Context。 |
**示例:**
```ts
let applicationContext = this.context.getApplicationContext();
let applicationContext;
try {
applicationContext = this.context.getApplicationContext();
} catch (error) {
console.log('getApplicationContext failed, error.code: ' + JSON.stringify(error.code) +
' error.message: ' + JSON.stringify(error.message));
}
```
## AreaMode
......
# ContinueCallback
表示迁移完成后,返回迁移结果回调函数,可以作为[continueMission](js-apis-distributedMissionManager.md#distributedmissionmanagercontinuemission)的入参监听迁移回调。
表示跨设备迁移Mission完成后,返回迁移结果的回调函数,迁移Mission详见:[continueMission接口](js-apis-distributedMissionManager.md#distributedmissionmanagercontinuemission)
## ContinueCallback.onContinueDone
onContinueDone(result: number): void;
Mission迁移完成后调用,返回迁移结果。
**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
| 名称 | 类型 | 可读 | 可写 | 说明 |
| --------------------- | -------- | ---- | ---- | ------------------ |
| onContinueDone | function | 是 | 否 | 通知迁移完成,返回迁移结果。 |
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| result | number | 否 | 迁移任务的结果。 |
**示例:**
```ts
import distributedMissionManager from '@ohos.distributedMissionManager';
import distributedMissionManager from '@ohos.distributedMissionManager'
let continueDeviceInfo = {
srcDeviceId: "123",
dstDeviceId: "456",
missionId: 123,
wantParam: {
"key":"value"
}
srcDeviceId: "123",
dstDeviceId: "456",
missionId: 123,
wantParam: {
"key":"value"
}
};
let continueCallback = {
onContinueDone(result) {
console.log('onContinueDone, result: ' + JSON.stringify(result));
}
}
};
distributedMissionManager.continueMission(continueDeviceInfo, continueCallback, (error) => {
if (error.code != 0) {
console.error('continueMission failed, cause: ' + JSON.stringify(error))
}
console.info('continueMission finished')
if (error && error.code) {
console.log('continueMission failed, error.code: ' + JSON.stringify(error.code) +
' error.message: ' + JSON.stringify(error.message));
}
console.log('continueMission finished');
})
```
\ No newline at end of file
```
# ContinueDeviceInfo
表示发起任务迁移时所需参数的枚举,可以作为[continueMission](js-apis-distributedMissionManager.md#distributedmissionmanagercontinuemission)的入参指定迁移相关参数
表示发起Mission迁移时所需参数的枚举,迁移Mission详见:[continueMission接口](js-apis-distributedMissionManager.md#distributedmissionmanagercontinuemission)
**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission
......@@ -14,27 +14,28 @@
**示例:**
```ts
import distributedMissionManager from '@ohos.distributedMissionManager';
import distributedMissionManager from '@ohos.distributedMissionManager'
let continueDeviceInfo = {
srcDeviceId: "123",
dstDeviceId: "456",
missionId: 123,
wantParam: {
"key":"value"
}
srcDeviceId: "123",
dstDeviceId: "456",
missionId: 123,
wantParam: {
"key":"value"
}
};
let continueCallback = {
onContinueDone(result) {
console.log('onContinueDone, result: ' + JSON.stringify(result));
}
}
};
distributedMissionManager.continueMission(continueDeviceInfo, continueCallback, (error) => {
if (error.code != 0) {
console.error('continueMission failed, cause: ' + JSON.stringify(error))
}
console.info('continueMission finished')
if (error && error.code) {
console.log('continueMission failed, error.code: ' + JSON.stringify(error.code) +
' error.message: ' + JSON.stringify(error.message));
}
console.log('continueMission finished');
})
```
\ No newline at end of file
```
# ErrorObserver
定义异常监听,可以作为[registerErrorObserver](js-apis-application-errorManager.md#errormanagerregistererrorobserver)的入参监听当前应用发生的异常。
定义异常监听,可以作为[ErrorManager.on](js-apis-app-ability-errorManager.md#errormanageron)的入参监听当前应用发生的异常。
## onUnhandledException
## ErrorObserver.onUnhandledException
onUnhandledException(errMsg: string): void;
......@@ -19,12 +19,18 @@ onUnhandledException(errMsg: string): void;
**示例:**
```ts
import errorManager from '@ohos.application.errorManager';
import errorManager from '@ohos.app.ability.errorManager'
let observer = {
onUnhandledException(errorMsg) {
console.log('onUnhandledException, errorMsg: ' + JSON.stringify(errorMsg));
console.log('HXW onUnhandledException, errorMsg: ', errorMsg);
}
}
errorManager.registerErrorObserver(observer)
```
\ No newline at end of file
try {
errorManager.on("error", observer);
} catch (error) {
console.log('registerErrorObserver' + ' failed, error.code: ' + JSON.stringify(error.code) +
' error.message: ' + JSON.stringify(error.message));
}
```
......@@ -3,22 +3,24 @@
EventHub模块提供了事件中心,提供订阅、取消订阅、触发事件的能力。
> **说明:**
>
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> 本模块接口仅可在Stage模型下使用。
>
> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> - 本模块接口仅可在Stage模型下使用。
## 使用说明
在使用eventHub的功能前,需要通过Ability实例的成员变量context获取。
在使用eventHub的功能前,需要通过UIAbility实例的成员变量context获取。
```ts
import Ability from '@ohos.application.Ability';
export default class MainAbility extends Ability {
func1(){
console.log("func1 is called");
import UIAbility from '@ohos.app.ability.UIAbility'
export default class MainAbility extends UIAbility {
eventFunc(){
console.log("eventFunc is called");
}
onForeground() {
this.context.eventHub.on("123", this.func1);
this.context.eventHub.on("myEvent", this.eventFunc);
}
}
```
......@@ -36,36 +38,39 @@ on(event: string, callback: Function): void;
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| event | string | 是 | 事件名称。 |
| callback | Function | 是 | 事件回调,事件触发后运行。 |
| callback | Function | 是 | 事件回调,事件触发后调用。 |
**示例:**
```ts
import Ability from '@ohos.application.Ability';
export default class MainAbility extends Ability {
onForeground() {
this.context.eventHub.on("123", this.func1);
this.context.eventHub.on("123", () => {
console.log("call anonymous func 1");
});
// 结果:
// func1 is called
// call anonymous func 1
this.context.eventHub.emit("123");
}
func1() {
console.log("func1 is called");
}
}
```
```ts
import UIAbility from '@ohos.app.ability.UIAbility'
export default class MainAbility extends UIAbility {
onForeground() {
this.context.eventHub.on("myEvent", this.eventFunc);
// 支持使用匿名函数订阅事件
this.context.eventHub.on("myEvent", () => {
console.log("call anonymous eventFunc");
});
// 结果:
// eventFunc is called
// call anonymous eventFunc
this.context.eventHub.emit("myEvent");
}
eventFunc() {
console.log("eventFunc is called");
}
}
```
## EventHub.off
off(event: string, callback?: Function): void;
取消订阅指定事件。当callback传值时,取消订阅指定的callback;未传值时,取消订阅该事件下所有callback。
取消订阅指定事件。
- 传入callback:取消指定的callback对指定事件的订阅,当该事件触发后,将不会回调该callback。
- 不传callback:取消所有callback对指定事件的订阅。
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
......@@ -77,27 +82,28 @@ off(event: string, callback?: Function): void;
| callback | Function | 否 | 事件回调。如果不传callback,则取消订阅该事件下所有callback。 |
**示例:**
```ts
import Ability from '@ohos.application.Ability';
export default class MainAbility extends Ability {
onForeground() {
this.context.eventHub.on("123", this.func1);
this.context.eventHub.off("123", this.func1); //取消订阅func1
this.context.eventHub.on("123", this.func1);
this.context.eventHub.on("123", this.func2);
this.context.eventHub.off("123"); //取消订阅func1和func2
}
func1() {
console.log("func1 is called");
}
func2() {
console.log("func2 is called");
}
}
```
```ts
import UIAbility from '@ohos.app.ability.UIAbility'
export default class MainAbility extends UIAbility {
onForeground() {
this.context.eventHub.on("myEvent", this.eventFunc1);
this.context.eventHub.off("myEvent", this.eventFunc1); // 取消eventFunc1对myEvent事件的订阅
this.context.eventHub.on("myEvent", this.eventFunc1);
this.context.eventHub.on("myEvent", this.eventFunc2);
this.context.eventHub.off("myEvent"); // 取消eventFunc1和eventFunc2对myEvent事件的订阅
}
eventFunc1() {
console.log("eventFunc1 is called");
}
eventFunc2() {
console.log("eventFunc2 is called");
}
}
```
## EventHub.emit
......@@ -115,25 +121,26 @@ emit(event: string, ...args: Object[]): void;
| ...args | Object[] | 是 | 可变参数,事件触发时,传递给回调函数的参数。 |
**示例:**
```ts
import Ability from '@ohos.application.Ability';
export default class MainAbility extends Ability {
onForeground() {
this.context.eventHub.on("123", this.func1);
// 结果:
// func1 is called,undefined,undefined
this.context.eventHub.emit("123");
// 结果:
// func1 is called,1,undefined
this.context.eventHub.emit("123", 1);
// 结果:
// func1 is called,1,2
this.context.eventHub.emit("123", 1, 2);
}
func1(a, b) {
console.log("func1 is called," + a + "," + b);
}
}
```
```ts
import UIAbility from '@ohos.app.ability.UIAbility'
export default class MainAbility extends UIAbility {
onForeground() {
this.context.eventHub.on("myEvent", this.eventFunc);
// 结果:
// eventFunc is called,undefined,undefined
this.context.eventHub.emit("myEvent");
// 结果:
// eventFunc is called,1,undefined
this.context.eventHub.emit("myEvent", 1);
// 结果:
// eventFunc is called,1,2
this.context.eventHub.emit("myEvent", 1, 2);
}
eventFunc(argOne, argTwo) {
console.log("eventFunc is called," + argOne + "," + argTwo);
}
}
```
......@@ -5,7 +5,7 @@ ExtensionContext是Extension的上下文环境,继承自Context。
ExtensionContext模块提供访问特定Extension的资源的能力,对于拓展的Extension,可直接将ExtensionContext作为上下文环境,或者定义一个继承自ExtensionContext的类型作为上下文环境。如:ServiceExtension提供了ServiceExtensionContext,它在ExtensionContext的基础上扩展了启动、停止、绑定、解绑Ability的能力,详见[ServiceExtensionContext](js-apis-inner-application-serviceExtensionContext.md)
> **说明:**
>
>
> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> - 本模块接口仅可在Stage模型下使用。
......@@ -110,4 +110,4 @@ export default class ServiceModel {
}
}
};
```
\ No newline at end of file
```
# ExtensionRunningInfo
ExtensionRunningInfo模块提供对Extension运行的相关信息和类型进行设置和查询的能力,可以通过[getExtensionRunningInfos](js-apis-app-ability-abilityManager.md#getextensionrunninginfos)获取。
ExtensionRunningInfo模块封装了Extension运行的相关信息,可以通过[getExtensionRunningInfos接口](js-apis-app-ability-abilityManager.md#getextensionrunninginfos)获取。
> **说明:**
>
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> 本模块接口均为系统接口,三方应用不支持调用
> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> - 本模块被标记为@systemapi,对三方应用隐藏
## 使用说明
通过abilityManager中方法获取
导入abilityManager模块,通过调用abilityManager中的方法获取ExtensionRunningInfo
## 属性
......@@ -17,29 +17,37 @@ ExtensionRunningInfo模块提供对Extension运行的相关信息和类型进行
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| extension | ElementName | 是 | 否 | Extension匹配信息。 |
| extension | [ElementName](js-apis-bundleManager-elementName.md) | 是 | 否 | Extension信息。 |
| pid | number | 是 | 否 | 进程ID。 |
| uid | number | 是 | 否 | 用户ID。 |
| uid | number | 是 | 否 | 应用程序的uid。 |
| processName | string | 是 | 否 | 进程名称。 |
| startTime | number | 是 | 否 | Extension启动时间。 |
| startTime | number | 是 | 否 | Extension被启动时的时间戳。 |
| clientPackage | Array&lt;String&gt; | 是 | 否 | 表示当期进程下的所有包名。 |
| type | [bundle.ExtensionAbilityType](js-apis-Bundle.md) | 是 | 否 | Extension类型。 |
| type | [ExtensionAbilityType](js-apis-bundleManager.md#extensionabilitytype) | 是 | 否 | Extension类型。 |
**示例:**
```ts
import abilityManager from '@ohos.application.abilityManager';
let upperLimit = 1;
abilityManager.getExtensionRunningInfos(upperLimit, (err,data) => {
console.log("getExtensionRunningInfos err: " + err + " data: " + JSON.stringify(data));
for (let i = 0; i < data.length; i++) {
let extensionRunningInfo = data[i];
console.log("extensionRunningInfo.extension: " + JSON.stringify(extensionRunningInfo.extension));
console.log("extensionRunningInfo.pid: " + JSON.stringify(extensionRunningInfo.pid));
console.log("extensionRunningInfo.uid: " + JSON.stringify(extensionRunningInfo.uid));
console.log("extensionRunningInfo.processName: " + JSON.stringify(extensionRunningInfo.processName));
console.log("extensionRunningInfo.startTime: " + JSON.stringify(extensionRunningInfo.startTime));
console.log("extensionRunningInfo.clientPackage: " + JSON.stringify(extensionRunningInfo.clientPackage));
console.log("extensionRunningInfo.type: " + JSON.stringify(extensionRunningInfo.type));
}
});
```
\ No newline at end of file
import abilityManager from '@ohos.app.ability.abilityManager'
var upperLimit = 1;
function getExtensionInfos() {
abilityManager.getExtensionRunningInfos(upperLimit, (error, data) => {
if (error && error.code) {
console.log('getForegroundApplications failed, error.code: ' + JSON.stringify(error.code) +
' error.message: ' + JSON.stringify(error.message));
return;
}
for (let i = 0; i < data.length; i++) {
let extensionRunningInfo = data[i];
console.log("extensionRunningInfo.extension: " + JSON.stringify(extensionRunningInfo.extension));
console.log("extensionRunningInfo.pid: " + JSON.stringify(extensionRunningInfo.pid));
console.log("extensionRunningInfo.uid: " + JSON.stringify(extensionRunningInfo.uid));
console.log("extensionRunningInfo.processName: " + JSON.stringify(extensionRunningInfo.processName));
console.log("extensionRunningInfo.startTime: " + JSON.stringify(extensionRunningInfo.startTime));
console.log("extensionRunningInfo.clientPackage: " + JSON.stringify(extensionRunningInfo.clientPackage));
console.log("extensionRunningInfo.type: " + JSON.stringify(extensionRunningInfo.type));
}
});
}
```
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册