1# @ohos.app.form.formObserver (formObserver) 2 3formObserver模块提供了卡片监听方相关接口的能力,包括对同一用户下安装的卡片新增、删除、可见性变化事件的订阅和取消订阅,获取正在运行的卡片信息等。 4 5> **说明:** 6> 7> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> 本模块接口均为系统接口。 9 10## 导入模块 11 12```ts 13import formObserver from '@ohos.app.form.formObserver'; 14``` 15 16## on('formAdd') 17 18 on(type: 'formAdd', observerCallback: Callback<formInfo.RunningFormInfo>): void 19 20订阅卡片新增事件。使用callback异步回调,返回当前新增卡片的[RunningFormInfo](js-apis-app-form-formInfo.md)。 21 22**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 23 24**系统能力**:SystemCapability.Ability.Form 25 26**参数:** 27 28| 参数名 | 类型 | 必填 | 说明 | 29| ------ | ------ | ---- | ------- | 30| type | string | 是 | 填写'formAdd',表示卡片新增事件。 | 31| observerCallback | Callback<formInfo.RunningFormInfo> | 是 | 回调函数。返回新增卡片的RunningFormInfo。 | 32 33**示例:** 34 35```ts 36import formObserver from '@ohos.app.form.formObserver'; 37import formInfo from '@ohos.app.form.formInfo'; 38 39formObserver.on('formAdd', (data: formInfo.RunningFormInfo) => { 40 console.log(`a new form added, data: ${JSON.stringify(data)}`); 41}); 42``` 43 44## on('formAdd') 45 46 on(type: 'formAdd', hostBundleName: string, observerCallback: Callback<formInfo.RunningFormInfo>): void 47 48订阅卡片新增事件。使用callback异步回调,返回指定卡片使用方应用新增卡片的[RunningFormInfo](js-apis-app-form-formInfo.md)。 49 50**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 51 52**系统能力**:SystemCapability.Ability.Form 53 54**参数:** 55 56| 参数名 | 类型 | 必填 | 说明 | 57| ------ | ------ | ---- | ------- | 58| type | string | 是 | 填写'formAdd',表示卡片新增事件。 | 59| hostBundleName | string | 是 | 指定订阅卡片使用方包的bundleName。缺省则订阅所有卡片使用方的卡片新增事件。 | 60| observerCallback | Callback<formInfo.RunningFormInfo> | 是 | 回调函数。返回新增卡片的RunningFormInfo。 | 61 62 63**示例:** 64 65```ts 66import formObserver from '@ohos.app.form.formObserver'; 67import formInfo from '@ohos.app.form.formInfo'; 68 69let bundleName: string = 'ohos.samples.FormApplication'; 70 71formObserver.on('formAdd', bundleName, (data: formInfo.RunningFormInfo) => { 72 console.log(`a new form added, data: ${JSON.stringify(data)}`); 73}); 74``` 75 76## off('formAdd') 77 78 off(type: "formAdd", hostBundleName?: string, observerCallback?: Callback<formInfo.RunningFormInfo>): void 79 80取消订阅卡片新增事件。使用callback异步回调,返回当前新增卡片的[RunningFormInfo](js-apis-app-form-formInfo.md)。 81 82**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 83 84**系统能力**:SystemCapability.Ability.Form 85 86**参数:** 87 88| 参数名 | 类型 | 必填 | 说明 | 89| ------ | ------ | ---- | ------- | 90| type | string | 是 | 填写'formAdd',表示卡片新增事件。 | 91| hostBundleName | string | 否 | 指定订阅卡片使用方包的bundleName。<br> 填写该参数时,与注册时填写bundleName的on接口对应。<br> 缺省则订阅所有卡片使用方的卡片删除事件,与注册时未填写bundleName的on接口相对应。 | 92| observerCallback | Callback<formInfo.RunningFormInfo> | 否 | 回调函数。返回卡片RunningFormInfo。缺省时,表示注销对应已注册事件回调。<br> 需与对应on('formAdd')的callback一致。| 93 94 95**示例:** 96 97```ts 98import formObserver from '@ohos.app.form.formObserver'; 99import formInfo from '@ohos.app.form.formInfo'; 100 101let bundleName: string = 'ohos.samples.FormApplication'; 102formObserver.off('formAdd', bundleName, (data: formInfo.RunningFormInfo) => { 103 console.log(`a new form added, data: ${JSON.stringify(data)}`); 104}); 105 106``` 107> **说明:** 108> on('formAdd', callback)与off('formAdd', callback)相对应; 109> on('formAdd', bundleName, callback)与off('formAdd', bundleName, callback)相对应; 110> 订阅(on)只能由自己对应的取消订阅接口(off)取消。 111 112## on('formRemove') 113 114 on(type: 'formRemove', observerCallback: Callback<formInfo.RunningFormInfo>): void 115 116订阅卡片删除事件。使用callback异步回调,返回当前删除卡片的[RunningFormInfo](js-apis-app-form-formInfo.md)。 117 118**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 119 120**系统能力**:SystemCapability.Ability.Form 121 122**参数:** 123 124| 参数名 | 类型 | 必填 | 说明 | 125| ------ | ------ | ---- | ------- | 126| type | string | 是 | 填写'formRemove',表示卡片删除事件。 | 127| observerCallback | Callback<formInfo.RunningFormInfo> | 是 | 回调函数。返回删除卡片的RunningFormInfo。 | 128 129**示例:** 130 131```ts 132import formObserver from '@ohos.app.form.formObserver'; 133import formInfo from '@ohos.app.form.formInfo'; 134 135formObserver.on('formRemove', (data: formInfo.RunningFormInfo) => { 136 console.log(`form deleted, data: ${JSON.stringify(data)}`); 137}); 138``` 139 140## on('formRemove') 141 142 on(type: 'formRemove', hostBundleName: string, observerCallback: Callback<formInfo.RunningFormInfo>): void 143 144订阅卡片删除事件。使用callback异步回调,返回指定卡片使用方应用被删除卡片的[RunningFormInfo](js-apis-app-form-formInfo.md)。 145 146**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 147 148**系统能力**:SystemCapability.Ability.Form 149 150**参数:** 151 152| 参数名 | 类型 | 必填 | 说明 | 153| ------ | ------ | ---- | ------- | 154| type | string | 是 | 填写'formRemove',表示卡片删除事件。 | 155| hostBundleName | string | 是 | 指定订阅卡片使用方包的bundleName。缺省则订阅所有卡片使用方的卡片删除事件。 | 156| observerCallback | Callback<formInfo.RunningFormInfo> | 是 | 回调函数。返回删除卡片的RunningFormInfo。 | 157 158 159**示例:** 160 161```ts 162import formObserver from '@ohos.app.form.formObserver'; 163import formInfo from '@ohos.app.form.formInfo'; 164 165let bundleName: string = 'ohos.samples.FormApplication'; 166formObserver.on('formRemove', bundleName, (data: formInfo.RunningFormInfo) => { 167 console.log(`form deleted, data: ${JSON.stringify(data)}`); 168}); 169``` 170 171## off('formRemove') 172 173off(type: "formRemove", hostBundleName?: string, observerCallback?: Callback<formInfo.RunningFormInfo>): void 174 175取消订阅卡片删除事件。使用callback异步回调,返回当前删除卡片的[RunningFormInfo](js-apis-app-form-formInfo.md)。 176 177**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 178 179**系统能力**:SystemCapability.Ability.Form 180 181**参数:** 182 183| 参数名 | 类型 | 必填 | 说明 | 184| ------ | ------ | ---- | ------- | 185| type | string | 是 | 填写'formRemove',表示卡片删除事件。 | 186| hostBundleName | string | 否 | 指定订阅卡片使用方包的bundleName。<br> 填写该参数时,与注册时填写bundleName的on接口对应。<br> 缺省则订阅所有卡片使用方的卡片删除事件,与注册时未填写bundleName的on接口相对应。 | 187| observerCallback | Callback<formInfo.RunningFormInfo> | 否 | 回调函数。返回卡片RunningFormInfo。缺省时,表示注销对应已注册事件回调。<br> 需与对应on('formRemove')的callback一致。| 188 189**示例:** 190 191```ts 192import formObserver from '@ohos.app.form.formObserver'; 193import formInfo from '@ohos.app.form.formInfo'; 194 195let bundleName: string = 'ohos.samples.FormApplication'; 196formObserver.off('formRemove', bundleName, (data: formInfo.RunningFormInfo) => { 197 console.log(`a new form added, data: ${JSON.stringify(data)}`); 198}); 199``` 200> **说明:** 201> on('formRemove', callback)与off('formRemove', callback)相对应; 202> on('formRemove', bundleName, callback)与off('formRemove', bundleName, callback)相对应; 203> 订阅(on)只能由自己对应的取消订阅接口(off)取消。 204 205## on('notifyVisible') 206 207 on(type: 'notifyVisible', observerCallback: Callback<Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo.md)>>): void 208 209订阅通知卡片可见的事件。 210 211触发通知卡片可见场景为:调用notifyVisibleForms接口通知对应卡片可见性变更为可见状态 212 213**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 214 215**系统能力**:SystemCapability.Ability.Form 216 217**参数:** 218 219| 参数名 | 类型 | 必填 | 说明 | 220| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 221| type | string | 是 | 仅允许填写'notifyVisible',表示订阅通知卡片可见的事件。 | 222| observerCallback | Callback <Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo.md)>> | 是 | 回调函数。返回订阅通知卡片可见的RunningFormInfo。 | 223 224**示例:** 225 226```ts 227import formObserver from '@ohos.app.form.formObserver'; 228import formInfo from '@ohos.app.form.formInfo'; 229 230formObserver.on('notifyVisible', (data: formInfo.RunningFormInfo[]) => { 231 console.log(`form change visibility, data: ${JSON.stringify(data)}`); 232}); 233 234``` 235 236## on('notifyVisible') 237 238 on(type: 'notifyVisible', hostBundleName: string, observerCallback: Callback<Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo.md)>>): void 239 240订阅通知卡片可见的事件。 241 242触发通知卡片可见场景为:调用notifyVisibleForms接口通知对应卡片可见性变更为可见状态 243 244**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 245 246**系统能力**:SystemCapability.Ability.Form 247 248**参数:** 249 250| 参数名 | 类型 | 必填 | 说明 | 251| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 252| type | string | 是 | 仅允许填写'notifyVisible',表示订阅通知卡片可见的事件。 | 253| hostBundleName | string | 是 | 指定卡片使用方的bundleName,用于订阅卡片在该使用方的可见状态变更事件。 | 254| observerCallback | Callback <Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo.md)>> | 是 | 回调函数。返回订阅通知卡片可见的RunningFormInfo。 | 255 256 257**示例:** 258 259```ts 260import formObserver from '@ohos.app.form.formObserver'; 261import formInfo from '@ohos.app.form.formInfo'; 262 263let bundleName: string = 'ohos.samples.FormApplication'; 264formObserver.on('notifyVisible', bundleName, (data: formInfo.RunningFormInfo[]) => { 265 console.log(`form change visibility, data: ${JSON.stringify(data)}`); 266}); 267``` 268 269## off('notifyVisible') 270 271 off(type: "notifyVisible", hostBundleName?: string, observerCallback?: Callback<Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo.md)>>): void 272 273取消订阅通知卡片可见的事件。 274 275**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 276 277**系统能力**:SystemCapability.Ability.Form 278 279**参数:** 280 281| 参数名 | 类型 | 必填 | 说明 | 282| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 283| type | string | 是 | 仅允许填写'notifyVisible',表示取消订阅通知卡片为可见的事件。 | 284| hostBundleName | string | 否 | 指定卡片使用方的bundleName,用于订阅卡片在该使用方的可见状态变更事件。<br> 填写该参数时,与注册时填写bundleName的on接口对应。 | 285| observerCallback | Callback <Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo.md)>> | 否 | 入参,注册时注册进去的callback。缺省时,表示注销对应已注册订阅的回调。<br> 需与对应on('notifyVisible')的callback一致。 | 286 287 288**示例:** 289 290```ts 291import formObserver from '@ohos.app.form.formObserver'; 292import formInfo from '@ohos.app.form.formInfo'; 293 294let bundleName: string = 'ohos.samples.FormApplication'; 295formObserver.off('notifyVisible', bundleName, (data: formInfo.RunningFormInfo[]) => { 296 console.log(`form change visibility, data: ${JSON.stringify(data)}`); 297}); 298``` 299 300> **说明:** 301> on('notifyVisible', callback)与off('notifyVisible', callback)相对应; 302> on('notifyVisible', bundleName, callback)与off('notifyVisible', bundleName, callback)相对应; 303> 订阅(on)只能由自己对应的取消订阅接口(off)取消。 304 305## on('notifyInvisible') 306 307 on(type: 'notifyInvisible', observerCallback: Callback<Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo.md)>>): void 308 309订阅通知卡片不可见的事件。 310 311触发通知卡片不可见场景为:调用notifyInvisibleForms接口通知对应卡片可见性变更为不可见状态 312 313**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 314 315**系统能力**:SystemCapability.Ability.Form 316 317**参数:** 318 319| 参数名 | 类型 | 必填 | 说明 | 320| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 321| type | string | 是 | 仅允许填写'notifyInvisible',表示订阅卡片不可见的事件。 | 322| observerCallback | Callback <Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo.md)>> | 是 | 回调函数。返回订阅通知卡片不可见的RunningFormInfo。 | 323 324**示例:** 325 326```ts 327import formObserver from '@ohos.app.form.formObserver'; 328import formInfo from '@ohos.app.form.formInfo'; 329 330formObserver.on('notifyInvisible', (data: formInfo.RunningFormInfo[]) => { 331 console.log(`form change invisibility, data: ${JSON.stringify(data)}`); 332}); 333``` 334 335 336## on('notifyInvisible') 337 338 on(type: 'notifyInvisible', hostBundleName: string, observerCallback: Callback<Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo.md)>>,): void 339 340订阅通知卡片不可见的事件。 341 342触发通知卡片不可见场景为:调用notifyInvisibleForms接口通知对应卡片可见性变更为不可见状态 343 344**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 345 346**系统能力**:SystemCapability.Ability.Form 347 348**参数:** 349 350| 参数名 | 类型 | 必填 | 说明 | 351| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 352| type | string | 是 | 仅允许填写'notifyInvisible',表示订阅卡片不可见的事件。 | 353| hostBundleName | string | 是 | 指定卡片使用方的bundleName,用于订阅卡片在该使用方的可见状态变更事件。 | 354| observerCallback | Callback <Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo.md)>> | 是 | 回调函数。返回订阅通知卡片不可见的RunningFormInfo。 | 355 356**示例:** 357 358```ts 359import formObserver from '@ohos.app.form.formObserver'; 360import formInfo from '@ohos.app.form.formInfo'; 361 362let bundleName: string = 'ohos.samples.FormApplication'; 363formObserver.on('notifyInvisible', bundleName, (data: formInfo.RunningFormInfo[]) => { 364 console.log(`form change invisibility, data: ${JSON.stringify(data)}`); 365}); 366``` 367 368## off('notifyInvisible') 369 370 off(type: "notifyInvisible", hostBundleName?: string, observerCallback?: Callback<Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo.md)>>): void 371 372取消订阅通知卡片不可见事件。 373 374**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 375 376**系统能力**:SystemCapability.Ability.Form 377 378**参数:** 379 380| 参数名 | 类型 | 必填 | 说明 | 381| ---------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 382| type | string | 是 | 仅允许填写'notifyInvisible',表示卡片可见性变更为不可见。 | 383| hostBundleName | string | 否 | 指定卡片使用方的bundleName,用于订阅卡片在该使用方的可见状态变更事件。<br> 填写该参数时,与注册时填写bundleName的on接口对应。<br> | 384| observerCallback | Callback <Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo.md)>> | 否 | 入参,注册时注册进去的callback。缺省时,表示注销对应已注册事件回调。<br/> 需与对应on('notifyInvisible')的callback一致。 | 385 386**示例:** 387 388```ts 389import formObserver from '@ohos.app.form.formObserver'; 390import formInfo from '@ohos.app.form.formInfo'; 391 392let bundleName: string = 'ohos.samples.FormApplication'; 393formObserver.off('notifyInvisible', bundleName, (data: formInfo.RunningFormInfo[]) => { 394 console.log(`form change invisibility, data: ${JSON.stringify(data)}`); 395}); 396``` 397 398> **说明:** 399> on('notifyInvisible', callback)与off('notifyInvisible', callback)相对应; 400> on('notifyInvisible', bundleName, callback)与off('notifyInvisible', bundleName, callback)相对应; 401> 订阅(on)只能由自己对应的取消订阅接口(off)取消。 402 403 404## getRunningFormInfos 405 406getRunningFormInfos(callback: AsyncCallback<Array<formInfo.RunningFormInfo>>, hostBundleName?: string): void 407 408获取设备上正在运行的所有非临时卡片信息。使用callback异步回调。 409 410**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 411 412**系统能力**:SystemCapability.Ability.Form 413 414**参数:** 415 416| 参数名 | 类型 | 必填 | 说明 | 417| ------ | ------ | ---- | ------- | 418| callback | AsyncCallback<Array<formInfo.RunningFormInfo>> | 是 | 回调函数。获取设备上指定应用为卡片使用方的当前卡片信息成功,error为undefined,data为查询到的卡片信息。| 419| hostBundleName | string | 否 | 指定要查询的卡片使用方名称,指定后会仅返回该卡片使用方下正在运行的非临时卡片信息。 <br> 缺省时,返回设备上所有正在运行的非临时卡片信息。 | 420 421**错误码:** 422以下错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)。 423 424| 错误码ID | 错误信息 | 425| -------- | -------- | 426| 16500050 | An IPC connection error happened. | 427| 16500060 | A service connection error happened, please try again later. || 428 429**示例:** 430 431```ts 432import formObserver from '@ohos.app.form.formObserver'; 433import formInfo from '@ohos.app.form.formInfo'; 434import Base from '@ohos.base'; 435 436try { 437 formObserver.getRunningFormInfos((error: Base.BusinessError, data: formInfo.RunningFormInfo[]) => { 438 if (error) { 439 console.error(`error, code: ${error.code}, message: ${error.message}`); 440 } else { 441 console.log(`formObserver getRunningFormInfos, data: ${JSON.stringify(data)}`); 442 } 443 }, 'com.example.ohos.formjsdemo'); 444} catch(error) { 445 console.error(`catch error, code: ${(error as Base.BusinessError).code}, message: ${(error as Base.BusinessError).message}`); 446} 447``` 448 449## getRunningFormInfos 450 451getRunningFormInfos(hostBundleName?: string): Promise<Array<formInfo.RunningFormInfo>> 452 453获取设备上正在运行的所有非临时卡片信息。使用Promise异步回调。 454 455**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 456 457**系统能力**:SystemCapability.Ability.Form 458 459**参数:** 460 461| 参数名 | 类型 | 必填 | 说明 | 462| ------ | ------ | ---- | ------- | 463| hostBundleName | string | 否 | 指定要查询的卡片使用方名称,指定后会仅返回该卡片使用方下正在运行的非临时卡片信息。 <br> 缺省时,返回设备上所有正在运行的非临时卡片信息。 | 464 465**返回值:** 466 467| 类型 | 说明 | 468| :----------------------------------------------------------- | :---------------------------------- | 469| Promise<Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo.md)>> | Promise对象,返回查询到的卡片信息。 | 470 471**错误码:** 472以下错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)。 473 474| 错误码ID | 错误信息 | 475| -------- | -------- | 476| 16500050 | An IPC connection error happened. | 477| 16500060 | A service connection error happened, please try again later. || 478 479**示例:** 480 481```ts 482import formObserver from '@ohos.app.form.formObserver'; 483import formInfo from '@ohos.app.form.formInfo'; 484import Base from '@ohos.base'; 485 486try { 487 formObserver.getRunningFormInfos('com.example.ohos.formjsdemo').then((data: formInfo.RunningFormInfo[]) => { 488 console.log(`formObserver getRunningFormInfos, data: ${JSON.stringify(data)}`); 489 }).catch((error: Base.BusinessError) => { 490 console.error(`error, code: ${error.code}, message: ${error.message}`); 491 }); 492} catch(error) { 493 console.error(`catch error, code: ${(error as Base.BusinessError).code}, message: ${(error as Base.BusinessError).message}`); 494} 495``` 496 497## getRunningFormInfosByFilter 498 499getRunningFormInfosByFilter(formProviderFilter: formInfo.FormProviderFilter): Promise<Array<formInfo.RunningFormInfo>> 500 501根据提供方信息查询卡片已有的使用方列表信息。使用Promise异步回调。 502 503**模型约束:** 此接口仅可在Stage模型下使用。 504 505**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 506 507**系统能力**:SystemCapability.Ability.Form 508 509**参数:** 510 511| 参数名 | 类型 | 必填 | 说明 | 512| ----------- | --------------- | ---- | -------------------------------- | 513| formProviderFilter | [formInfo.FormProviderFilter](js-apis-app-form-formInfo.md#formProviderFilter) | 是 | 卡片提供方应用信息。 | 514 515**返回值:** 516 517| 类型 | 说明 | 518| ------------------- | ------------------------- | 519| Promise<Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo.md#RunningFormInfo)>> | Promise对象,返回查询到的使用方列表信息。 | 520 521**错误码:** 522 523以下错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)。 524 525| 错误码ID | 错误信息 | 526| -------- | -------- | 527| 201 | Permissions denied. | 528| 202 | The application is not a system application. | 529| 401 | If the input parameter is not valid parameter. | 530| 16500050 | An IPC connection error happened. | 531| 16500100 | Failed to obtain the configuration information. | 532| 16501000 | An internal functional error occurred. | 533 534 535```ts 536import formObserver from '@ohos.app.form.formObserver'; 537import formInfo from '@ohos.app.form.formInfo'; 538import Base from '@ohos.base'; 539 540let formInstanceFilter: formInfo.FormProviderFilter = { 541 bundleName: "com.example.formprovide", 542 abilityName: "EntryFormAbility", 543 formName: "widget", 544 moduleName: "entry" 545} 546try { 547 formObserver.getRunningFormInfosByFilter(formInstanceFilter).then((data: formInfo.RunningFormInfo[]) => { 548 console.info('formObserver getRunningFormInfosByFilter success, data:' + JSON.stringify(data)); 549 }).catch((error: Base.BusinessError) => { 550 console.error(`error, code: ${error.code}, message: ${error.message}`); 551 }); 552} catch(error) { 553 console.error(`catch error, code: ${(error as Base.BusinessError).code}, message: ${(error as Base.BusinessError).message}`); 554} 555``` 556 557## getRunningFormInfosByFilter 558 559getRunningFormInfosByFilter(formProviderFilter: formInfo.FormProviderFilter, callback: AsyncCallback<Array<formInfo.RunningFormInfo>>): void 560 561根据提供方信息查询卡片已有的使用方列表信息。使用callback异步回调。 562 563**模型约束:** 此接口仅可在Stage模型下使用。 564 565**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 566 567**系统能力**:SystemCapability.Ability.Form 568 569**参数:** 570 571| 参数名 | 类型 | 必填 | 说明 | 572| ----------- | --------------- | ---- | -------------------------------- | 573| formProviderFilter | [formInfo.FormProviderFilter](js-apis-app-form-formInfo.md#formProviderFilter) | 是 | 卡片提供方应用信息。 | 574| callback | AsyncCallback<Array<[formInfo.RunningFormInfo](js-apis-app-form-formInfo.md)>> | 是 | 回调函数。返回查询到的使用方列表信息,error为undefined,data为查询到的使用方列表信息;否则为错误对象。 | 575 576**错误码:** 577 578以下错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)。 579 580| 错误码ID | 错误信息 | 581| -------- | -------- | 582| 201 | Permissions denied. | 583| 202 | The application is not a system application. | 584| 401 | If the input parameter is not valid parameter. | 585| 16500050 | An IPC connection error happened. | 586| 16500100 | Failed to obtain the configuration information. | 587| 16501000 | An internal functional error occurred. | 588 589 590```ts 591import formObserver from '@ohos.app.form.formObserver'; 592import formInfo from '@ohos.app.form.formInfo'; 593import Base from '@ohos.base'; 594 595let formInstanceFilter: formInfo.FormProviderFilter = { 596 bundleName: "com.example.formprovide", 597 abilityName: "EntryFormAbility", 598 formName: "widget", 599 moduleName: "entry" 600} 601try { 602 formObserver.getRunningFormInfosByFilter(formInstanceFilter,(error: Base.BusinessError, data: formInfo.RunningFormInfo[]) => { 603 if (error) { 604 console.error(`error, code: ${error.code}, message: ${error.message}`); 605 } else { 606 console.log(`formObserver getRunningFormInfosByFilter, data: ${JSON.stringify(data)}`); 607 } 608 }); 609} catch(error) { 610 console.error(`catch error, code: ${(error as Base.BusinessError).code}, message: ${(error as Base.BusinessError).message}`); 611} 612``` 613 614## getRunningFormInfoById 615 616getRunningFormInfoById(formId: string): Promise<formInfo.RunningFormInfo> 617 618 619根据formId查询卡片已有的使用方列表信息。使用Promise异步回调。 620 621**模型约束:** 此接口仅可在Stage模型下使用。 622 623**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 624 625**系统能力**:SystemCapability.Ability.Form 626 627**参数:** 628 629| 参数名 | 类型 | 必填 | 说明 | 630| ----------- | --------------- | ---- | -------------------------------- | 631| formId | string | 是 | 卡片标识。 | 632 633**返回值:** 634 635| 类型 | 说明 | 636| ------------------- | ------------------------- | 637| Promise<[formInfo.RunningFormInfo](js-apis-app-form-formInfo.md)> | Promise对象,返回查询到的使用方列表信息。 | 638 639**错误码:** 640 641以下错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)。 642 643| 错误码ID | 错误信息 | 644| -------- | -------- | 645| 201 | Permissions denied. | 646| 202 | The application is not a system application. | 647| 401 | If the input parameter is not valid parameter. | 648| 16500050 | An IPC connection error happened. | 649| 16500100 | Failed to obtain the configuration information. | 650| 16501000 | An internal functional error occurred. | 651 652 653```ts 654import formObserver from '@ohos.app.form.formObserver'; 655import formInfo from '@ohos.app.form.formInfo'; 656import Base from '@ohos.base'; 657 658let formId: string = '12400633174999288'; 659try { 660 formObserver.getRunningFormInfoById(formId).then((data: formInfo.RunningFormInfo) => { 661 console.info('formObserver getRunningFormInfoById success, data:' + JSON.stringify(data)); 662 }).catch((error: Base.BusinessError) => { 663 console.error(`error, code: ${error.code}, message: ${error.message}`); 664 }); 665} catch(error) { 666 console.error(`catch error, code: ${(error as Base.BusinessError).code}, message: ${(error as Base.BusinessError).message}`); 667} 668``` 669 670## getRunningFormInfoById 671 672getRunningFormInfoById(formId: string, callback: AsyncCallback<formInfo.RunningFormInfo>): void 673 674根据提供方信息查询卡片已有的使用方列表信息。使用callback异步回调。 675 676**模型约束:** 此接口仅可在Stage模型下使用。 677 678**需要权限**:ohos.permission.OBSERVE_FORM_RUNNING 679 680**系统能力**:SystemCapability.Ability.Form 681 682**参数:** 683 684| 参数名 | 类型 | 必填 | 说明 | 685| ----------- | --------------- | ---- | -------------------------------- | 686| formId | string | 是 | 卡片标识。 | 687| callback | AsyncCallback<[formInfo.RunningFormInfo](js-apis-app-form-formInfo.md)> | 是 | 回调函数。返回查询到的使用方列表信息,error为undefined,data为查询到的使用方列表信息;否则为错误对象。 | 688 689**错误码:** 690 691以下错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)。 692 693| 错误码ID | 错误信息 | 694| -------- | -------- | 695| 201 | Permissions denied. | 696| 202 | The application is not a system application. | 697| 401 | If the input parameter is not valid parameter. | 698| 16500050 | An IPC connection error happened. | 699| 16500100 | Failed to obtain the configuration information. | 700| 16501000 | An internal functional error occurred. | 701 702```ts 703import formObserver from '@ohos.app.form.formObserver'; 704import formInfo from '@ohos.app.form.formInfo'; 705import Base from '@ohos.base'; 706 707let formId: string = '12400633174999288'; 708try { 709 formObserver.getRunningFormInfoById(formId,(error: Base.BusinessError, data: formInfo.RunningFormInfo) => { 710 if (error) { 711 console.error(`error, code: ${error.code}, message: ${error.message}`); 712 } else { 713 console.log(`formObserver getRunningFormInfoById, data: ${JSON.stringify(data)}`); 714 } 715 }); 716} catch(error) { 717 console.error(`catch error, code: ${(error as Base.BusinessError).code}, message: ${(error as Base.BusinessError).message}`); 718} 719``` 720