# @ohos.app.form.formObserver (formObserver)(系统接口)
formObserver模块提供了卡片监听方相关接口的能力,包括对同一用户下安装的卡片新增、删除、可见性变化事件的订阅和取消订阅,获取正在运行的卡片信息等。
> **说明:**
>
> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> 本模块接口均为系统接口。
## 导入模块
```ts
import { formObserver } from '@kit.FormKit';
```
## on('formAdd')
on(type: 'formAdd', observerCallback: Callback<formInfo.RunningFormInfo>): void
订阅卡片新增事件。使用callback异步回调,返回当前新增卡片的信息。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------- |
| type | string | 是 | 填写'formAdd',表示卡片新增事件。 |
| observerCallback | Callback<formInfo.[RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | 是 | 回调函数。返回当前新增卡片的信息。 |
**错误码:**
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
以上错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let callback = (data: formInfo.RunningFormInfo) => {
console.log(`a new form added, data: ${JSON.stringify(data)}`);
}
formObserver.on('formAdd', callback);
```
## on('formAdd')
on(type: 'formAdd', hostBundleName: string, observerCallback: Callback<formInfo.RunningFormInfo>): void
订阅卡片新增事件。使用callback异步回调,返回指定卡片使用方应用新增卡片的信息。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------- |
| type | string | 是 | 填写'formAdd',表示卡片新增事件。 |
| hostBundleName | string | 是 | 指定订阅卡片使用方包的bundleName。缺省则订阅所有卡片使用方的卡片新增事件。 |
| observerCallback | Callback<formInfo.[RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | 是 | 回调函数。返回指定卡片使用方应用新增卡片的信息。 |
**错误码:**
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let bundleName: string = 'ohos.samples.FormApplication';
let callback = (data: formInfo.RunningFormInfo) => {
console.log(`a new form added, data: ${JSON.stringify(data)}`);
}
formObserver.on('formAdd', bundleName, callback);
```
## off('formAdd')
off(type: "formAdd", hostBundleName?: string, observerCallback?: Callback<formInfo.RunningFormInfo>): void
取消订阅卡片新增事件。使用callback异步回调,返回当前新增卡片的信息。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------- |
| type | string | 是 | 填写'formAdd',表示卡片新增事件。 |
| hostBundleName | string | 否 | 指定订阅卡片使用方包的bundleName。
填写该参数时,与注册时填写bundleName的on接口对应。
缺省则订阅所有卡片使用方的卡片删除事件,与注册时未填写bundleName的on接口相对应。 |
| observerCallback | Callback<formInfo.[RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | 否 | 回调函数。返回当前新增卡片信息。缺省时,表示注销对应已注册事件回调。
需与对应on('formAdd')的callback一致。|
**错误码:**
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let bundleName: string = 'ohos.samples.FormApplication';
let callback = (data: formInfo.RunningFormInfo) => {
console.log(`a new form added, data: ${JSON.stringify(data)}`);
}
formObserver.off('formAdd', bundleName, callback);
```
> **说明:**
>
> on('formAdd', callback)与off('formAdd', callback)相对应;
> on('formAdd', bundleName, callback)与off('formAdd', bundleName, callback)相对应;
> 订阅(on)只能由自己对应的取消订阅接口(off)取消。
## on('formRemove')
on(type: 'formRemove', observerCallback: Callback<formInfo.RunningFormInfo>): void
订阅卡片删除事件。使用callback异步回调,返回当前删除卡片的信息。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------- |
| type | string | 是 | 填写'formRemove',表示卡片删除事件。 |
| observerCallback | Callback<formInfo.[RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | 是 | 回调函数。返回当前删除卡片的信息。 |
**错误码:**
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let callback = (data: formInfo.RunningFormInfo) => {
console.log(`form deleted, data: ${JSON.stringify(data)}`);
}
formObserver.on('formRemove', callback);
```
## on('formRemove')
on(type: 'formRemove', hostBundleName: string, observerCallback: Callback<formInfo.RunningFormInfo>): void
订阅卡片删除事件。使用callback异步回调,返回指定卡片使用方应用被删除卡片的信息。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------- |
| type | string | 是 | 填写'formRemove',表示卡片删除事件。 |
| hostBundleName | string | 是 | 指定订阅卡片使用方包的bundleName。缺省则订阅所有卡片使用方的卡片删除事件。 |
| observerCallback | Callback<formInfo.[RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | 是 | 回调函数。返回指定卡片使用方应用被删除卡片的信息。 |
**错误码:**
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let bundleName: string = 'ohos.samples.FormApplication';
let callback = (data: formInfo.RunningFormInfo) => {
console.log(`form deleted, data: ${JSON.stringify(data)}`);
}
formObserver.on('formRemove', bundleName, callback);
```
## off('formRemove')
off(type: "formRemove", hostBundleName?: string, observerCallback?: Callback<formInfo.RunningFormInfo>): void
取消订阅卡片删除事件。使用callback异步回调,返回当前删除卡片的信息。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------- |
| type | string | 是 | 填写'formRemove',表示卡片删除事件。 |
| hostBundleName | string | 否 | 指定订阅卡片使用方包的bundleName。
填写该参数时,与注册时填写bundleName的on接口对应。
缺省则订阅所有卡片使用方的卡片删除事件,与注册时未填写bundleName的on接口相对应。 |
| observerCallback | Callback<formInfo.[RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | 否 | 回调函数。返回当前删除卡片的信息。缺省时,表示注销对应已注册事件回调。
需与对应on('formRemove')的callback一致。|
**错误码:**
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let bundleName: string = 'ohos.samples.FormApplication';
let callback = (data: formInfo.RunningFormInfo) => {
console.log(`a new form added, data: ${JSON.stringify(data)}`);
}
formObserver.off('formRemove', bundleName, callback);
```
> **说明:**
>
> on('formRemove', callback)与off('formRemove', callback)相对应;
> on('formRemove', bundleName, callback)与off('formRemove', bundleName, callback)相对应;
> 订阅(on)只能由自己对应的取消订阅接口(off)取消。
## on('notifyVisible')
on(type: 'notifyVisible', observerCallback: Callback<Array<formInfo.RunningFormInfo>>): void
订阅通知卡片可见的事件。使用callback异步回调。
触发通知卡片可见场景为:调用[notifyVisibleForms](js-apis-app-form-formHost-sys.md#notifyvisibleforms)接口通知对应卡片可见性变更为可见状态。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 仅允许填写'notifyVisible',表示订阅通知卡片可见的事件。 |
| observerCallback | Callback <Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)>> | 是 | 回调函数。返回订阅该事件的卡片信息列表。 |
**错误码:**
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let callback = (data: formInfo.RunningFormInfo[]) => {
console.log(`form change visibility, data: ${JSON.stringify(data)}`);
}
formObserver.on('notifyVisible', callback);
```
## on('notifyVisible')
on(type: 'notifyVisible', hostBundleName: string, observerCallback: Callback<Array<formInfo.RunningFormInfo>>): void
订阅通知卡片可见的事件。使用callback异步回调。
触发通知卡片可见场景为:调用[notifyVisibleForms](js-apis-app-form-formHost-sys.md#notifyvisibleforms)接口通知对应卡片可见性变更为可见状态。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 仅允许填写'notifyVisible',表示订阅通知卡片可见的事件。 |
| hostBundleName | string | 是 | 指定卡片使用方的bundleName,用于订阅卡片在该使用方的可见状态变更事件。 |
| observerCallback | Callback <Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)>> | 是 | 回调函数。返回订阅该事件的卡片信息列表。 |
**错误码:**
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let bundleName: string = 'ohos.samples.FormApplication';
let callback = (data: formInfo.RunningFormInfo[]) => {
console.log(`form change visibility, data: ${JSON.stringify(data)}`);
}
formObserver.on('notifyVisible', bundleName, callback);
```
## off('notifyVisible')
off(type: "notifyVisible", hostBundleName?: string, observerCallback?: Callback<Array<formInfo.RunningFormInfo>>): void
取消订阅通知卡片可见的事件。使用callback异步回调。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 仅允许填写'notifyVisible',表示取消订阅通知卡片为可见的事件。 |
| hostBundleName | string | 否 | 指定卡片使用方的bundleName,用于订阅卡片在该使用方的可见状态变更事件。
填写该参数时,与注册时填写bundleName的on接口对应。 |
| observerCallback | Callback <Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)>> | 否 | 回调函数。返回取消订阅该事件的卡片信息列表。缺省时,表示注销对应已注册订阅的回调。
需与对应on('notifyVisible')的callback一致。 |
**错误码:**
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let bundleName: string = 'ohos.samples.FormApplication';
let callback = (data: formInfo.RunningFormInfo[]) => {
console.log(`form change visibility, data: ${JSON.stringify(data)}`);
}
formObserver.off('notifyVisible', bundleName, callback);
```
> **说明:**
>
> on('notifyVisible', callback)与off('notifyVisible', callback)相对应;
> on('notifyVisible', bundleName, callback)与off('notifyVisible', bundleName, callback)相对应;
> 订阅(on)只能由自己对应的取消订阅接口(off)取消。
## on('notifyInvisible')
on(type: 'notifyInvisible', observerCallback: Callback<Array<formInfo.RunningFormInfo>>): void
订阅通知卡片不可见的事件。使用callback异步回调。
触发通知卡片不可见场景为:调用[notifyInvisibleForms](js-apis-app-form-formHost-sys.md#notifyinvisibleforms)接口通知对应卡片可见性变更为不可见状态。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 仅允许填写'notifyInvisible',表示订阅卡片不可见的事件。 |
| observerCallback | Callback <Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)>> | 是 | 回调函数。返回订阅通知卡片不可见的卡片信息列表。 |
**错误码:**
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let callback = (data: formInfo.RunningFormInfo[]) => {
console.log(`form change invisibility, data: ${JSON.stringify(data)}`);
}
formObserver.on('notifyInvisible', callback);
```
## on('notifyInvisible')
on(type: 'notifyInvisible', hostBundleName: string, observerCallback: Callback<Array<formInfo.RunningFormInfo>>): void
订阅通知卡片不可见的事件。使用callback异步回调。
触发通知卡片不可见场景为:调用[notifyInvisibleForms](js-apis-app-form-formHost-sys.md#notifyinvisibleforms)接口通知对应卡片可见性变更为不可见状态。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 仅允许填写'notifyInvisible',表示订阅卡片不可见的事件。 |
| hostBundleName | string | 是 | 指定卡片使用方的bundleName,用于订阅卡片在该使用方的可见状态变更事件。 |
| observerCallback | Callback <Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)>> | 是 | 回调函数。返回订阅通知卡片不可见的卡片信息列表。 |
**错误码:**
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let bundleName: string = 'ohos.samples.FormApplication';
let callback = (data: formInfo.RunningFormInfo[]) => {
console.log(`form change invisibility, data: ${JSON.stringify(data)}`);
}
formObserver.on('notifyInvisible', bundleName, callback);
```
## off('notifyInvisible')
off(type: "notifyInvisible", hostBundleName?: string, observerCallback?: Callback<Array<formInfo.RunningFormInfo>>): void
取消订阅通知卡片不可见事件。使用callback异步回调。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 仅允许填写'notifyInvisible',表示卡片可见性变更为不可见。 |
| hostBundleName | string | 否 | 指定卡片使用方的bundleName,用于订阅卡片在该使用方的可见状态变更事件。
填写该参数时,与注册时填写bundleName的on接口对应。
|
| observerCallback | Callback <Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)>> | 否 | 回调函数。返回取消订阅通知卡片不可见的卡片信息列表。缺省时,表示注销对应已注册事件回调。
需与对应on('notifyInvisible')的callback一致。 |
**错误码:**
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let bundleName: string = 'ohos.samples.FormApplication';
let callback = (data: formInfo.RunningFormInfo[]) => {
console.log(`form change invisibility, data: ${JSON.stringify(data)}`);
}
formObserver.off('notifyInvisible', bundleName, callback);
```
> **说明:**
>
> on('notifyInvisible', callback)与off('notifyInvisible', callback)相对应;
> on('notifyInvisible', bundleName, callback)与off('notifyInvisible', bundleName, callback)相对应;
> 订阅(on)只能由自己对应的取消订阅接口(off)取消。
## getRunningFormInfos
getRunningFormInfos(callback: AsyncCallback<Array<formInfo.RunningFormInfo>>, hostBundleName?: string): void
获取设备上正在运行的所有非临时卡片信息。使用callback异步回调。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------- |
| callback | AsyncCallback<Array<formInfo.[RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)>> | 是 | 回调函数。获取设备上正在运行的所有非临时卡片信息。当前卡片信息成功,error为undefined,data为查询到的卡片信息。|
| hostBundleName | string | 否 | 指定要查询的卡片使用方名称,指定后会仅返回该卡片使用方下正在运行的非临时卡片信息。
缺省时,返回设备上所有正在运行的非临时卡片信息。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 201 | Permissions denied. |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
| 16500050 | IPC connection error. |
| 16500060 | Service connection error. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
formObserver.getRunningFormInfos((error: BusinessError, data: formInfo.RunningFormInfo[]) => {
if (error) {
console.error(`error, code: ${error.code}, message: ${error.message}`);
} else {
console.log(`formObserver getRunningFormInfos, data: ${JSON.stringify(data)}`);
}
}, 'com.example.ohos.formjsdemo');
} catch(error) {
console.error(`catch error, code: ${(error as BusinessError).code}, message: ${(error as BusinessError).message}`);
}
```
## getRunningFormInfos11+
getRunningFormInfos(callback: AsyncCallback<Array<formInfo.RunningFormInfo>>, isUnusedIncluded: boolean, hostBundleName?: string): void
获取设备上正在运行的所有非临时卡片信息。使用callback异步回调。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------- |
| callback | AsyncCallback<Array<formInfo.[RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)>> | 是 | 回调函数。获取设备上正在运行的所有非临时卡片信息。当获取成功时,回调中的error为undefined,data为查询到的卡片信息。|
| isUnusedIncluded | boolean | 是 | 是否包含未使用的卡片。 |
| hostBundleName | string | 否 | 指定要查询的卡片使用方名称,指定后会仅返回该卡片使用方下正在运行的非临时卡片信息。
缺省时,返回设备上所有正在运行的非临时卡片信息。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 201 | Permissions denied. |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
| 16500050 | IPC connection error. |
| 16500060 | Service connection error. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
formObserver.getRunningFormInfos((error: BusinessError, data: formInfo.RunningFormInfo[]) => {
if (error) {
console.error(`error, code: ${error.code}, message: ${error.message}`);
} else {
console.log(`formObserver getRunningFormInfos, data: ${JSON.stringify(data)}`);
}
}, true, 'com.example.ohos.formjsdemo');
} catch(error) {
console.error(`catch error, code: ${(error as BusinessError).code}, message: ${(error as BusinessError).message}`);
}
```
## getRunningFormInfos
getRunningFormInfos(hostBundleName?: string): Promise<Array<formInfo.RunningFormInfo>>
获取设备上正在运行的所有非临时卡片信息。使用Promise异步回调。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------- |
| hostBundleName | string | 否 | 指定要查询的卡片使用方名称,指定后会仅返回该卡片使用方下正在运行的非临时卡片信息。
缺省时,返回设备上所有正在运行的非临时卡片信息。 |
**返回值:**
| 类型 | 说明 |
| :----------------------------------------------------------- | :---------------------------------- |
| Promise<Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)>> | Promise对象。返回设备上正在运行的所有非临时卡片信息。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 201 | Permissions denied. |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
| 16500050 | IPC connection error. |
| 16500060 | Service connection error. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
formObserver.getRunningFormInfos('com.example.ohos.formjsdemo').then((data: formInfo.RunningFormInfo[]) => {
console.log(`formObserver getRunningFormInfos, data: ${JSON.stringify(data)}`);
}).catch((error: BusinessError) => {
console.error(`error, code: ${error.code}, message: ${error.message}`);
});
} catch(error) {
console.error(`catch error, code: ${(error as BusinessError).code}, message: ${(error as BusinessError).message}`);
}
```
## getRunningFormInfos11+
getRunningFormInfos(isUnusedIncluded: boolean, hostBundleName?: string): Promise<Array<formInfo.RunningFormInfo>>
获取设备上正在运行的所有非临时卡片信息。使用Promise异步回调。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------- |
| isUnusedIncluded | boolean | 是 | 是否包含未使用的卡片。 |
| hostBundleName | string | 否 | 指定要查询的卡片使用方名称,指定后会仅返回该卡片使用方下正在运行的非临时卡片信息。
缺省时,返回设备上所有正在运行的非临时卡片信息。 |
**返回值:**
| 类型 | 说明 |
| :----------------------------------------------------------- | :---------------------------------- |
| Promise<Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)>> | Promise对象。返回设备上正在运行的所有非临时卡片信息。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 201 | Permissions denied. |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
| 16500050 | IPC connection error. |
| 16500060 | Service connection error. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
import { BusinessError } from '@kit.BasicServicesKit';
try {
formObserver.getRunningFormInfos(true, 'com.example.ohos.formjsdemo').then((data: formInfo.RunningFormInfo[]) => {
console.log(`formObserver getRunningFormInfos, data: ${JSON.stringify(data)}`);
}).catch((error: BusinessError) => {
console.error(`error, code: ${error.code}, message: ${error.message}`);
});
} catch(error) {
console.error(`catch error, code: ${(error as BusinessError).code}, message: ${(error as BusinessError).message}`);
}
```
## getRunningFormInfosByFilter
getRunningFormInfosByFilter(formProviderFilter: formInfo.FormProviderFilter): Promise<Array<formInfo.RunningFormInfo>>
根据提供方信息查询已添加的卡片信息列表。使用Promise异步回调。
**模型约束:** 此接口仅可在Stage模型下使用。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----------- | --------------- | ---- | -------------------------------- |
| formProviderFilter | [formInfo.FormProviderFilter](js-apis-app-form-formInfo-sys.md#formproviderfilter10) | 是 | 卡片提供方应用信息。 |
**返回值:**
| 类型 | 说明 |
| ------------------- | ------------------------- |
| Promise<Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)>> | Promise对象。返回已添加的卡片信息列表。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 201 | Permissions denied. |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
| 16500050 | IPC connection error. |
| 16500100 | Failed to obtain the configuration information. |
| 16501000 | An internal functional error occurred. |
```ts
import { formInfo, formObserver } from '@kit.FormKit';
import { BusinessError } from '@kit.BasicServicesKit';
let formInstanceFilter: formInfo.FormProviderFilter = {
bundleName: "com.example.formprovide",
abilityName: "EntryFormAbility",
formName: "widget",
moduleName: "entry"
}
try {
formObserver.getRunningFormInfosByFilter(formInstanceFilter).then((data: formInfo.RunningFormInfo[]) => {
console.info('formObserver getRunningFormInfosByFilter success, data:' + JSON.stringify(data));
}).catch((error: BusinessError) => {
console.error(`error, code: ${error.code}, message: ${error.message}`);
});
} catch(error) {
console.error(`catch error, code: ${(error as BusinessError).code}, message: ${(error as BusinessError).message}`);
}
```
## getRunningFormInfosByFilter
getRunningFormInfosByFilter(formProviderFilter: formInfo.FormProviderFilter, callback: AsyncCallback<Array<formInfo.RunningFormInfo>>): void
根据提供方信息查询已添加的卡片信息列表。使用callback异步回调。
**模型约束:** 此接口仅可在Stage模型下使用。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----------- | --------------- | ---- | -------------------------------- |
| formProviderFilter | [formInfo.FormProviderFilter](js-apis-app-form-formInfo-sys.md#formproviderfilter10) | 是 | 卡片提供方应用信息。 |
| callback | AsyncCallback<Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)>> | 是 | 回调函数。返回已添加的卡片信息列表。error为undefined,data为查询到的使用方列表信息;否则为错误对象。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 201 | Permissions denied. |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
| 16500050 | IPC connection error. |
| 16500100 | Failed to obtain the configuration information. |
| 16501000 | An internal functional error occurred. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
import { BusinessError } from '@kit.BasicServicesKit';
let formInstanceFilter: formInfo.FormProviderFilter = {
bundleName: "com.example.formprovide",
abilityName: "EntryFormAbility",
formName: "widget",
moduleName: "entry"
}
try {
formObserver.getRunningFormInfosByFilter(formInstanceFilter,(error: BusinessError, data: formInfo.RunningFormInfo[]) => {
if (error) {
console.error(`error, code: ${error.code}, message: ${error.message}`);
} else {
console.log(`formObserver getRunningFormInfosByFilter, data: ${JSON.stringify(data)}`);
}
});
} catch(error) {
console.error(`catch error, code: ${(error as BusinessError).code}, message: ${(error as BusinessError).message}`);
}
```
## getRunningFormInfoById
getRunningFormInfoById(formId: string): Promise<formInfo.RunningFormInfo>
根据formId查询已添加的卡片信息。使用Promise异步回调。
**模型约束:** 此接口仅可在Stage模型下使用。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----------- | --------------- | ---- | -------------------------------- |
| formId | string | 是 | 卡片标识。 |
**返回值:**
| 类型 | 说明 |
| ------------------- | ------------------------- |
| Promise<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | Promise对象。返回已添加的卡片信息。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 201 | Permissions denied. |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
| 16500050 | IPC connection error. |
| 16500100 | Failed to obtain the configuration information. |
| 16501000 | An internal functional error occurred. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
import { BusinessError } from '@kit.BasicServicesKit';
let formId: string = '12400633174999288';
try {
formObserver.getRunningFormInfoById(formId).then((data: formInfo.RunningFormInfo) => {
console.info('formObserver getRunningFormInfoById success, data:' + JSON.stringify(data));
}).catch((error: BusinessError) => {
console.error(`error, code: ${error.code}, message: ${error.message}`);
});
} catch(error) {
console.error(`catch error, code: ${(error as BusinessError).code}, message: ${(error as BusinessError).message}`);
}
```
## getRunningFormInfoById11+
getRunningFormInfoById(formId: string, isUnusedIncluded: boolean): Promise<formInfo.RunningFormInfo>
根据formId查询卡片已添加的卡片信息。使用Promise异步回调。
**模型约束:** 此接口仅可在Stage模型下使用。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----------- | --------------- | ---- | -------------------------------- |
| formId | string | 是 | 卡片标识。 |
| isUnusedIncluded | boolean | 是 | 是否包含未使用的卡片。 |
**返回值:**
| 类型 | 说明 |
| ------------------- | ------------------------- |
| Promise<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | Promise对象。返回已添加的卡片信息。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 201 | Permissions denied. |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
| 16500050 | IPC connection error. |
| 16500100 | Failed to obtain the configuration information. |
| 16501000 | An internal functional error occurred. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
import { BusinessError } from '@kit.BasicServicesKit';
let formId: string = '12400633174999288';
try {
formObserver.getRunningFormInfoById(formId, true).then((data: formInfo.RunningFormInfo) => {
console.info('formObserver getRunningFormInfoById success, data:' + JSON.stringify(data));
}).catch((error: BusinessError) => {
console.error(`error, code: ${error.code}, message: ${error.message}`);
});
} catch(error) {
console.error(`catch error, code: ${(error as BusinessError).code}, message: ${(error as BusinessError).message}`);
}
```
## getRunningFormInfoById
getRunningFormInfoById(formId: string, callback: AsyncCallback<formInfo.RunningFormInfo>): void
根据提供方信息查询已添加的卡片信息。使用callback异步回调。
**模型约束:** 此接口仅可在Stage模型下使用。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----------- | --------------- | ---- | -------------------------------- |
| formId | string | 是 | 卡片标识。 |
| callback | AsyncCallback<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | 是 | 回调函数。返回已添加的卡片信息。error为undefined,data为查询到的使用方列表信息;否则为错误对象。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 201 | Permissions denied. |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
| 16500050 | IPC connection error. |
| 16500100 | Failed to obtain the configuration information. |
| 16501000 | An internal functional error occurred. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
import { BusinessError } from '@kit.BasicServicesKit';
let formId: string = '12400633174999288';
try {
formObserver.getRunningFormInfoById(formId,(error: BusinessError, data: formInfo.RunningFormInfo) => {
if (error) {
console.error(`error, code: ${error.code}, message: ${error.message}`);
} else {
console.log(`formObserver getRunningFormInfoById, data: ${JSON.stringify(data)}`);
}
});
} catch(error) {
console.error(`catch error, code: ${(error as BusinessError).code}, message: ${(error as BusinessError).message}`);
}
```
## getRunningFormInfoById11+
getRunningFormInfoById(formId: string, isUnusedIncluded: boolean, callback: AsyncCallback<formInfo.RunningFormInfo>): void
根据卡片标识formId,查询已添加的卡片信息。使用callback异步回调。
**模型约束:** 此接口仅可在Stage模型下使用。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----------- | --------------- | ---- | -------------------------------- |
| formId | string | 是 | 卡片标识。 |
| isUnusedIncluded | boolean | 是 | 是否包含未使用的卡片。 |
| callback | AsyncCallback<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | 是 | 回调函数。返回已添加的卡片信息。error为undefined,data为查询到的使用方列表信息;否则为错误对象。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 201 | Permissions denied. |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
| 16500050 | IPC connection error. |
| 16500100 | Failed to obtain the configuration information. |
| 16501000 | An internal functional error occurred. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
import { BusinessError } from '@kit.BasicServicesKit';
let formId: string = '12400633174999288';
try {
formObserver.getRunningFormInfoById(formId, true, (error: BusinessError, data: formInfo.RunningFormInfo) => {
if (error) {
console.error(`error, code: ${error.code}, message: ${error.message}`);
} else {
console.log(`formObserver getRunningFormInfoById, data: ${JSON.stringify(data)}`);
}
});
} catch(error) {
console.error(`catch error, code: ${(error as BusinessError).code}, message: ${(error as BusinessError).message}`);
}
```
## on('router')11+
on(type: 'router', observerCallback: Callback<formInfo.RunningFormInfo>): void
订阅卡片router事件。使用callback异步回调,返回触发router事件的卡片信息。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------------- | ---------------------------------------- | ---- | ----------------------------------------- |
| type | string | 是 | 填写'router',表示订阅卡片的router事件。 |
| observerCallback | Callback<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | 是 | 回调函数。返回触发router事件的卡片信息。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let callback = (data: formInfo.RunningFormInfo) => {
console.log('Router event listening in registered form.' + JSON.stringify(data));
};
formObserver.on('router', callback);
```
## on('router')11+
on(type: 'router', hostBundleName: string, observerCallback: Callback<formInfo.RunningFormInfo>): void
订阅指定卡片使用方的卡片router事件。使用callback异步回调,返回触发router事件的卡片信息。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------------- | ---------------------------------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 填写'router',表示订阅卡片的router事件。 |
| hostBundleName | string | 是 | 指定卡片使用方的bundleName。缺省则订阅所有卡片使用方的卡片的router事件。 |
| observerCallback | Callback<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | 是 | 回调函数。返回触发router事件的卡片信息。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let hostBundleName: string = 'ohos.samples.FormApplication';
let callback = (data: formInfo.RunningFormInfo) => {
console.log('Router event listening in registered form.' + JSON.stringify(data));
};
formObserver.on('router', hostBundleName, callback);
```
## off('router')11+
off(type: "router", hostBundleName?: string, observerCallback?: Callback<formInfo.RunningFormInfo>): void
取消订阅卡片router事件。使用callback异步回调,返回触发router事件的卡片信息。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------------- | ---------------------------------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 填写'router',表示取消订阅卡片的router事件。 |
| hostBundleName | string | 否 | 指定订阅卡片使用方包的bundleName。
填写该参数时,与注册时填写bundleName的on接口对应。
缺省则订阅所有卡片使用方点击router类型卡片的事件,与注册时未填写bundleName的on接口相对应。 |
| observerCallback | Callback<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | 否 | 回调函数。返回触发router事件的卡片信息。缺省时,表示注销对应bundleName下已注册事件回调。
需与对应on('router')的callback一致。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let hostBundleName: string = 'ohos.samples.FormApplication';
let callback = (data: formInfo.RunningFormInfo) => {
console.log('Unregister form router event Listening.' + JSON.stringify(data));
};
formObserver.off('router', hostBundleName, callback);
```
## on('message')11+
on(type: 'message', observerCallback: Callback<formInfo.RunningFormInfo>): void
订阅卡片message事件。使用callback异步回调,返回触发message事件的卡片信息。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------------- | ---------------------------------------- | ---- | ----------------------------------------- |
| type | string | 是 | 填写'message',表示订阅卡片的message事件。 |
| observerCallback | Callback<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | 是 | 回调函数。返回触发message事件的卡片信息。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let callback = (data: formInfo.RunningFormInfo) => {
console.log('Message event listening in registered form.' + JSON.stringify(data));
};
formObserver.on('message', callback);
```
## on('message')11+
on(type: 'message', hostBundleName: string, observerCallback: Callback<formInfo.RunningFormInfo>): void
订阅指定卡片使用方的卡片message事件。使用callback异步回调,返回触发message事件的卡片信息。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------------- | ---------------------------------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 填写'message',表示订阅卡片的message事件。 |
| hostBundleName | string | 是 | 指定卡片使用方的bundleName。缺省则订阅所有卡片使用方的卡片的message事件。 |
| observerCallback | Callback<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | 是 | 回调函数。返回触发message事件的卡片的信息。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let hostBundleName: string = 'ohos.samples.FormApplication';
let callback = (data: formInfo.RunningFormInfo) => {
console.log('Message event listening in registered form.' + JSON.stringify(data));
};
formObserver.on('message', hostBundleName, callback);
```
## off('message')11+
off(type: "message", hostBundleName?: string, observerCallback?: Callback<formInfo.RunningFormInfo>): void
取消订阅卡片message事件。使用callback异步回调,返回触发message事件的卡片的信息。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------------- | ---------------------------------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 填写'message',表示取消订阅卡片的message事件。 |
| hostBundleName | string | 否 | 指定订阅卡片使用方包的bundleName。
填写该参数时,与注册时填写bundleName的on接口对应。
缺省则取消订阅所有卡片使用方的点击事件,与注册时未填写bundleName的on接口相对应。 |
| observerCallback | Callback<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | 否 | 回调函数。返回触发message事件的卡片的信息。缺省时,表示注销对应已注册事件回调。
需与对应on('message')的callback一致。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let hostBundleName: string = 'ohos.samples.FormApplication';
let callback = (data: formInfo.RunningFormInfo) => {
console.log('Unregister form Message event Listening.' + JSON.stringify(data));
};
formObserver.off('message', hostBundleName, callback);
```
## on('call')11+
on(type: 'call', observerCallback: Callback<formInfo.RunningFormInfo>): void
订阅卡片call事件。使用callback异步回调,返回触发call事件的卡片信息。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------------- | ---------------------------------------- | ---- | ----------------------------------------- |
| type | string | 是 | 填写'call',表示订阅卡片的call事件。 |
| observerCallback | Callback<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | 是 | 回调函数。返回触发call事件的卡片信息。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let callback = (data: formInfo.RunningFormInfo) => {
console.log('Call event listening in registered form.' + JSON.stringify(data));
};
formObserver.on('call', callback);
```
## on('call')11+
on(type: 'call', hostBundleName: string, observerCallback: Callback<formInfo.RunningFormInfo>): void
订阅指定卡片使用方的卡片call事件。使用callback异步回调,返回触发call事件的卡片信息。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------------- | ---------------------------------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 填写'call',表示订阅卡片的call事件。 |
| hostBundleName | string | 是 | 指定卡片使用方的bundleName。缺省则订阅所有卡片使用方的卡片的call事件。 |
| observerCallback | Callback<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | 是 | 回调函数。返回触发call事件的卡片信息。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let hostBundleName: string = 'ohos.samples.FormApplication';
let callback = (data: formInfo.RunningFormInfo) => {
console.log('Call event listening in registered form.' + JSON.stringify(data));
};
formObserver.on('call', hostBundleName, callback);
```
## off('call')11+
off(type: "call", hostBundleName?: string, observerCallback?: Callback<formInfo.RunningFormInfo>): void
取消订阅卡片call事件。使用callback异步回调,返回触发call事件的卡片信息。
**需要权限:** ohos.permission.OBSERVE_FORM_RUNNING
**系统能力:** SystemCapability.Ability.Form
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------------- | ---------------------------------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 填写'call',表示取消订阅卡片的call事件。 |
| hostBundleName | string | 否 | 指定订阅卡片使用方包的bundleName。
填写该参数时,与注册时填写bundleName的on接口对应。
缺省则取消订阅所有卡片使用方的点击事件,与注册时未填写bundleName的on接口相对应。 |
| observerCallback | Callback<[formInfo.RunningFormInfo](js-apis-app-form-formInfo-sys.md#runningforminfo10)> | 否 | 回调函数。返回触发call事件的卡片信息。缺省时,表示注销对应已注册事件回调。
需与对应on('call')的callback一致。 |
**错误码:**
以下错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 202 | The application is not a system application. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
**示例:**
```ts
import { formInfo, formObserver } from '@kit.FormKit';
let hostBundleName: string = 'ohos.samples.FormApplication';
let callback = (data: formInfo.RunningFormInfo) => {
console.log('Unregister form Call event Listening.' + JSON.stringify(data));
};
formObserver.off('call', hostBundleName, callback);
```