1# @ohos.wantAgent (WantAgent模块) 2<!--deprecated_code_no_check--> 3 4WantAgent模块提供了创建WantAgent实例、获取实例的用户ID、获取want信息、比较WantAgent实例和获取bundle名称等能力。 5 6> **说明:** 7> 8> 本模块首批接口从API version 7开始支持,从API version 9废弃,替换模块为[@ohos.app.ability.wantAgent](js-apis-app-ability-wantAgent.md)。后续版本的新增接口,采用上角标单独标记接口的起始版本。 9 10## 导入模块 11 12```ts 13import wantAgent from '@ohos.wantAgent'; 14``` 15 16## wantAgent.getWantAgent 17 18getWantAgent(info: WantAgentInfo, callback: AsyncCallback\<WantAgent\>): void 19 20创建WantAgent。创建失败返回的WantAgent为空值。使用callback异步回调。 21 22**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 23 24**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 25 26**参数:** 27 28| 参数名 | 类型 | 必填 | 说明 | 29| -------- | -------------------------- | ---- | ----------------------- | 30| info | [WantAgentInfo](js-apis-inner-wantAgent-wantAgentInfo.md) | 是 | WantAgent信息。 | 31| callback | AsyncCallback\<WantAgent\> | 是 | 创建WantAgent的回调方法。 | 32 33**示例:** 34 35```ts 36import wantAgent, { WantAgent as _WantAgent } from '@ohos.wantAgent'; 37import { BusinessError } from '@ohos.base'; 38 39//getWantAgent回调 40function getWantAgentCallback(err: BusinessError, data: _WantAgent) { 41 if (err.code) { 42 console.info('getWantAgent Callback err:' + JSON.stringify(err)); 43 } else { 44 console.info('getWantAgent Callback success'); 45 } 46} 47 48wantAgent.getWantAgent({ 49 wants: [ 50 { 51 deviceId: 'deviceId', 52 bundleName: 'com.neu.setResultOnAbilityResultTest1', 53 abilityName: 'com.example.test.EntryAbility', 54 action: 'action1', 55 entities: ['entity1'], 56 type: 'MIMETYPE', 57 uri: 'key={true,true,false}', 58 parameters: 59 { 60 mykey0: 2222, 61 mykey1: [1, 2, 3], 62 mykey2: '[1, 2, 3]', 63 mykey3: 'ssssssssssssssssssssssssss', 64 mykey4: [false, true, false], 65 mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], 66 mykey6: true, 67 } 68 } 69 ], 70 operationType: wantAgent.OperationType.START_ABILITY, 71 requestCode: 0, 72 wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] 73}, getWantAgentCallback); 74``` 75 76## wantAgent.getWantAgent 77 78getWantAgent(info: WantAgentInfo): Promise\<WantAgent\> 79 80创建WantAgent。创建失败返回的WantAgent为空值。使用Promise异步回调。 81 82**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 83 84**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 85 86**参数:** 87 88| 参数名 | 类型 | 必填 | 说明 | 89| ---- | ------------- | ---- | ------------- | 90| info | [WantAgentInfo](js-apis-inner-wantAgent-wantAgentInfo.md) | 是 | WantAgent信息。 | 91 92**返回值:** 93 94| 类型 | 说明 | 95| ----------------------------------------------------------- | ------------------------------------------------------------ | 96| Promise\<WantAgent\> | 以Promise形式返回WantAgent。 | 97 98**示例:** 99 100```ts 101import wantAgent, { WantAgent as _WantAgent } from '@ohos.wantAgent'; 102 103wantAgent.getWantAgent({ 104 wants: [ 105 { 106 deviceId: 'deviceId', 107 bundleName: 'com.neu.setResultOnAbilityResultTest1', 108 abilityName: 'com.example.test.EntryAbility', 109 action: 'action1', 110 entities: ['entity1'], 111 type: 'MIMETYPE', 112 uri: 'key={true,true,false}', 113 parameters: 114 { 115 mykey0: 2222, 116 mykey1: [1, 2, 3], 117 mykey2: '[1, 2, 3]', 118 mykey3: 'ssssssssssssssssssssssssss', 119 mykey4: [false, true, false], 120 mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], 121 mykey6: true, 122 } 123 } 124 ], 125 operationType: wantAgent.OperationType.START_ABILITY, 126 requestCode: 0, 127 wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] 128}).then((data: _WantAgent) => { 129 console.info('==========================>getWantAgentCallback=======================>'); 130}); 131``` 132 133## wantAgent.getBundleName 134 135getBundleName(agent: WantAgent, callback: AsyncCallback\<string\>): void 136 137获取WantAgent实例的Bundle名称。使用callback异步回调。 138 139**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 140 141**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 142 143**参数:** 144 145| 参数名 | 类型 | 必填 | 说明 | 146| -------- | ----------------------- | ---- | --------------------------------- | 147| agent | WantAgent | 是 | WantAgent对象。 | 148| callback | AsyncCallback\<string\> | 是 | 获取WantAgent实例的包名的回调方法。 | 149 150**示例:** 151 152```ts 153import wantAgent, { WantAgent as _WantAgent } from '@ohos.wantAgent'; 154import { BusinessError } from '@ohos.base'; 155 156//wantAgent对象 157let wantAgentObj: _WantAgent; 158 159//getWantAgent回调 160function getWantAgentCallback(err: BusinessError, data: _WantAgent) { 161 console.info('==========================>getWantAgentCallback=======================>'); 162 if (err.code == 0) { 163 wantAgentObj = data; 164 } else { 165 console.error('getWantAgent failed, error: ' + JSON.stringify(err)); 166 return; 167 } 168 169 //getBundleName回调 170 let getBundleNameCallback = (err: BusinessError, data: string) => { 171 console.info('==========================>getBundleNameCallback=======================>'); 172 } 173 wantAgent.getBundleName(wantAgentObj, getBundleNameCallback); 174} 175 176wantAgent.getWantAgent({ 177 wants: [ 178 { 179 deviceId: 'deviceId', 180 bundleName: 'com.neu.setResultOnAbilityResultTest1', 181 abilityName: 'com.example.test.EntryAbility', 182 action: 'action1', 183 entities: ['entity1'], 184 type: 'MIMETYPE', 185 uri: 'key={true,true,false}', 186 parameters: 187 { 188 mykey0: 2222, 189 mykey1: [1, 2, 3], 190 mykey2: '[1, 2, 3]', 191 mykey3: 'ssssssssssssssssssssssssss', 192 mykey4: [false, true, false], 193 mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], 194 mykey6: true, 195 } 196 } 197 ], 198 operationType: wantAgent.OperationType.START_ABILITY, 199 requestCode: 0, 200 wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] 201}, getWantAgentCallback); 202``` 203 204 205 206## wantAgent.getBundleName 207 208getBundleName(agent: WantAgent): Promise\<string\> 209 210获取WantAgent实例的Bundle名称。使用Promise异步回调。 211 212**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 213 214**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 215 216**参数:** 217 218| 参数名 | 类型 | 必填 | 说明 | 219| ----- | --------- | ---- | ------------- | 220| agent | WantAgent | 是 | WantAgent对象。 | 221 222**返回值:** 223 224| 类型 | 说明 | 225| ----------------- | ------------------------------------------------ | 226| Promise\<string\> | 以Promise形式返回获取WantAgent实例的Bundle名称。 | 227 228**示例:** 229 230```ts 231import wantAgent, { WantAgent as _WantAgent } from '@ohos.wantAgent'; 232 233//wantAgent对象 234let wantAgentObj: _WantAgent; 235 236wantAgent.getWantAgent({ 237 wants: [ 238 { 239 deviceId: 'deviceId', 240 bundleName: 'com.neu.setResultOnAbilityResultTest1', 241 abilityName: 'com.example.test.EntryAbility', 242 action: 'action1', 243 entities: ['entity1'], 244 type: 'MIMETYPE', 245 uri: 'key={true,true,false}', 246 parameters: 247 { 248 mykey0: 2222, 249 mykey1: [1, 2, 3], 250 mykey2: '[1, 2, 3]', 251 mykey3: 'ssssssssssssssssssssssssss', 252 mykey4: [false, true, false], 253 mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], 254 mykey6: true, 255 } 256 } 257 ], 258 operationType: wantAgent.OperationType.START_ABILITY, 259 requestCode: 0, 260 wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] 261}).then((data: _WantAgent) => { 262 console.info('==========================>getWantAgentCallback=======================>'); 263 wantAgentObj = data; 264 if (wantAgentObj) { 265 wantAgent.getBundleName(wantAgentObj).then((data) => { 266 console.info('==========================>getBundleNameCallback=======================>'); 267 }); 268 } 269}); 270``` 271 272 273 274## wantAgent.getUid 275 276getUid(agent: WantAgent, callback: AsyncCallback\<number\>): void 277 278获取WantAgent实例的用户ID。使用callback异步回调。 279 280**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 281 282**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 283 284**参数:** 285 286| 参数名 | 类型 | 必填 | 说明 | 287| -------- | ----------------------- | ---- | ----------------------------------- | 288| agent | WantAgent | 是 | WantAgent对象。 | 289| callback | AsyncCallback\<number\> | 是 | 获取WantAgent实例的用户ID的回调方法。 | 290 291**示例:** 292 293```ts 294import wantAgent, { WantAgent as _WantAgent } from '@ohos.wantAgent'; 295import { BusinessError } from '@ohos.base'; 296 297//wantAgent对象 298let wantAgentObj: _WantAgent; 299 300//getWantAgent回调 301function getWantAgentCallback(err: BusinessError, data: _WantAgent) { 302 console.info('==========================>getWantAgentCallback=======================>'); 303 if (err.code == 0) { 304 wantAgentObj = data; 305 } else { 306 console.error('getWantAgent failed, error: ' + JSON.stringify(err)); 307 return; 308 } 309 310 //getUid回调 311 let getUidCallback = (err: BusinessError, data: number) => { 312 console.info('==========================>getUidCallback=======================>'); 313 } 314 wantAgent.getUid(wantAgentObj, getUidCallback); 315} 316 317wantAgent.getWantAgent({ 318 wants: [ 319 { 320 deviceId: 'deviceId', 321 bundleName: 'com.neu.setResultOnAbilityResultTest1', 322 abilityName: 'com.example.test.EntryAbility', 323 action: 'action1', 324 entities: ['entity1'], 325 type: 'MIMETYPE', 326 uri: 'key={true,true,false}', 327 parameters: 328 { 329 mykey0: 2222, 330 mykey1: [1, 2, 3], 331 mykey2: '[1, 2, 3]', 332 mykey3: 'ssssssssssssssssssssssssss', 333 mykey4: [false, true, false], 334 mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], 335 mykey6: true, 336 } 337 } 338 ], 339 operationType: wantAgent.OperationType.START_ABILITY, 340 requestCode: 0, 341 wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] 342}, getWantAgentCallback); 343``` 344 345 346 347## wantAgent.getUid 348 349getUid(agent: WantAgent): Promise\<number\> 350 351获取WantAgent实例的用户ID。使用Promise异步回调。 352 353**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 354 355**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 356 357**参数:** 358 359| 参数名 | 类型 | 必填 | 说明 | 360| ----- | --------- | ---- | ------------- | 361| agent | WantAgent | 是 | WantAgent对象。 | 362 363**返回值:** 364 365| 类型 | 说明 | 366| ----------------------------------------------------------- | ------------------------------------------------------------ | 367| Promise\<number\> | 以Promise形式返回获取WantAgent实例的用户ID。 | 368 369**示例:** 370 371```ts 372import wantAgent, { WantAgent as _WantAgent } from '@ohos.wantAgent'; 373 374//wantAgent对象 375let wantAgentObj: _WantAgent; 376 377wantAgent.getWantAgent({ 378 wants: [ 379 { 380 deviceId: 'deviceId', 381 bundleName: 'com.neu.setResultOnAbilityResultTest1', 382 abilityName: 'com.example.test.EntryAbility', 383 action: 'action1', 384 entities: ['entity1'], 385 type: 'MIMETYPE', 386 uri: 'key={true,true,false}', 387 parameters: 388 { 389 mykey0: 2222, 390 mykey1: [1, 2, 3], 391 mykey2: '[1, 2, 3]', 392 mykey3: 'ssssssssssssssssssssssssss', 393 mykey4: [false, true, false], 394 mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], 395 mykey6: true, 396 } 397 } 398 ], 399 operationType: wantAgent.OperationType.START_ABILITY, 400 requestCode: 0, 401 wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] 402}).then((data) => { 403 console.info('==========================>getWantAgentCallback=======================>'); 404 wantAgentObj = data; 405 if (wantAgentObj) { 406 wantAgent.getUid(wantAgentObj).then((data) => { 407 console.info('==========================>getUidCallback=======================>'); 408 }); 409 } 410}); 411``` 412 413 414## wantAgent.cancel 415 416cancel(agent: WantAgent, callback: AsyncCallback\<void\>): void 417 418取消WantAgent实例。使用callback异步回调。 419 420**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 421 422**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 423 424**参数:** 425 426| 参数名 | 类型 | 必填 | 说明 | 427| -------- | --------------------- | ---- | --------------------------- | 428| agent | WantAgent | 是 | WantAgent对象。 | 429| callback | AsyncCallback\<void\> | 是 | 取消WantAgent实例的回调方法。 | 430 431**示例:** 432 433```ts 434import wantAgent, { WantAgent as _WantAgent } from '@ohos.wantAgent'; 435import { BusinessError } from '@ohos.base'; 436 437//wantAgent对象 438let wantAgentObj: _WantAgent; 439 440//getWantAgent回调 441function getWantAgentCallback(err: BusinessError, data: _WantAgent) { 442 console.info('==========================>getWantAgentCallback=======================>'); 443 if (err.code == 0) { 444 wantAgentObj = data; 445 } else { 446 console.error('getWantAgent failed, error: ' + JSON.stringify(err)); 447 return; 448 } 449 450 //cancel回调 451 let cancelCallback = (err: BusinessError) => { 452 console.info('==========================>cancelCallback=======================>'); 453 } 454 wantAgent.cancel(wantAgentObj, cancelCallback); 455} 456 457wantAgent.getWantAgent({ 458 wants: [ 459 { 460 deviceId: 'deviceId', 461 bundleName: 'com.neu.setResultOnAbilityResultTest1', 462 abilityName: 'com.example.test.EntryAbility', 463 action: 'action1', 464 entities: ['entity1'], 465 type: 'MIMETYPE', 466 uri: 'key={true,true,false}', 467 parameters: 468 { 469 mykey0: 2222, 470 mykey1: [1, 2, 3], 471 mykey2: '[1, 2, 3]', 472 mykey3: 'ssssssssssssssssssssssssss', 473 mykey4: [false, true, false], 474 mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], 475 mykey6: true, 476 } 477 } 478 ], 479 operationType: wantAgent.OperationType.START_ABILITY, 480 requestCode: 0, 481 wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] 482}, getWantAgentCallback); 483``` 484 485 486 487## wantAgent.cancel 488 489cancel(agent: WantAgent): Promise\<void\> 490 491取消WantAgent实例。使用Promise异步回调。 492 493**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 494 495**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 496 497**参数:** 498 499| 参数名 | 类型 | 必填 | 说明 | 500| ----- | --------- | ---- | ------------- | 501| agent | WantAgent | 是 | WantAgent对象。 | 502 503**返回值:** 504 505| 类型 | 说明 | 506| --------------- | ------------------------------- | 507| Promise\<void\> | 以Promise形式获取异步返回结果。 | 508 509**示例:** 510 511```ts 512import wantAgent, { WantAgent as _WantAgent } from '@ohos.wantAgent'; 513import { BusinessError } from '@ohos.base'; 514 515//wantAgent对象 516let wantAgentObj: _WantAgent; 517 518wantAgent.getWantAgent({ 519 wants: [ 520 { 521 deviceId: 'deviceId', 522 bundleName: 'com.neu.setResultOnAbilityResultTest1', 523 abilityName: 'com.example.test.EntryAbility', 524 action: 'action1', 525 entities: ['entity1'], 526 type: 'MIMETYPE', 527 uri: 'key={true,true,false}', 528 parameters: 529 { 530 mykey0: 2222, 531 mykey1: [1, 2, 3], 532 mykey2: '[1, 2, 3]', 533 mykey3: 'ssssssssssssssssssssssssss', 534 mykey4: [false, true, false], 535 mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], 536 mykey6: true, 537 } 538 } 539], 540 operationType: wantAgent.OperationType.START_ABILITY, 541 requestCode: 0, 542 wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] 543}).then((data) => { 544 console.info('==========================>getWantAgentCallback=======================>'); 545 wantAgentObj = data; 546 if (wantAgentObj) { 547 wantAgent.cancel(wantAgentObj).then((data) => { 548 console.info('==========================>cancelCallback=======================>'); 549 }); 550 } 551}); 552``` 553 554 555 556## wantAgent.trigger 557 558trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback\<CompleteData\>): void 559 560主动激发WantAgent实例。使用callback异步回调。 561 562**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 563 564**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 565 566**参数:** 567 568| 参数名 | 类型 | 必填 | 说明 | 569| ----------- | ----------------------------- | ---- | ------------------------------- | 570| agent | WantAgent | 是 | WantAgent对象。 | 571| triggerInfo | [TriggerInfo](js-apis-inner-wantAgent-triggerInfo.md) | 是 | TriggerInfo对象。 | 572| callback | Callback\<CompleteData\> | 否 | 主动激发WantAgent实例的回调方法。 | 573 574**示例:** 575 576```ts 577import wantAgent, { WantAgent as _WantAgent } from '@ohos.wantAgent'; 578import { BusinessError } from '@ohos.base'; 579 580//wantAgent对象 581let wantAgentObj: _WantAgent; 582 583//getWantAgent回调 584function getWantAgentCallback(err: BusinessError, data: _WantAgent) { 585 console.info('==========================>getWantAgentCallback=======================>'); 586 if (err.code == 0) { 587 wantAgentObj = data; 588 } else { 589 console.error('getWantAgent failed, error: ' + JSON.stringify(err)); 590 return; 591 } 592 593 //trigger回调 594 let triggerCallback = (data: wantAgent.CompleteData) => { 595 console.info('==========================>triggerCallback=======================>'); 596 }; 597 598 wantAgent.trigger(wantAgentObj, {code:0}, triggerCallback); 599} 600 601wantAgent.getWantAgent({ 602 wants: [ 603 { 604 deviceId: 'deviceId', 605 bundleName: 'com.neu.setResultOnAbilityResultTest1', 606 abilityName: 'com.example.test.EntryAbility', 607 action: 'action1', 608 entities: ['entity1'], 609 type: 'MIMETYPE', 610 uri: 'key={true,true,false}', 611 parameters: 612 { 613 mykey0: 2222, 614 mykey1: [1, 2, 3], 615 mykey2: '[1, 2, 3]', 616 mykey3: 'ssssssssssssssssssssssssss', 617 mykey4: [false, true, false], 618 mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], 619 mykey6: true, 620 } 621 } 622 ], 623 operationType: wantAgent.OperationType.START_ABILITY, 624 requestCode: 0, 625 wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] 626}, getWantAgentCallback); 627``` 628 629 630 631## wantAgent.equal 632 633equal(agent: WantAgent, otherAgent: WantAgent, callback: AsyncCallback\<boolean\>): void 634 635判断两个WantAgent实例是否相等,以此来判断是否是来自同一应用的相同操作。使用callback异步回调。 636 637**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 638 639**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 640 641**参数:** 642 643| 参数名 | 类型 | 必填 | 说明 | 644| ---------- | ------------------------ | ---- | --------------------------------------- | 645| agent | WantAgent | 是 | WantAgent对象。 | 646| otherAgent | WantAgent | 是 | WantAgent对象。 | 647| callback | AsyncCallback\<boolean\> | 是 | 判断两个WantAgent实例是否相等的回调方法。返回true表示两个WantAgent实例相等;返回false表示不相等。 | 648 649**示例:** 650 651```ts 652import wantAgent, { WantAgent as _WantAgent } from '@ohos.wantAgent'; 653import { BusinessError } from '@ohos.base'; 654 655//wantAgent对象 656let wantAgentObj1: _WantAgent; 657let wantAgentObj2: _WantAgent; 658 659//getWantAgent回调 660function getWantAgentCallback(err: BusinessError, data: _WantAgent) { 661 console.info('==========================>getWantAgentCallback=======================>'); 662 if (err.code == 0) { 663 wantAgentObj1 = data; 664 wantAgentObj2 = data; 665 } else { 666 console.error('getWantAgent failed, error: ' + JSON.stringify(err)); 667 return; 668 } 669 670 //equal回调 671 let equalCallback = (err: BusinessError, data: boolean) => { 672 console.info('==========================>equalCallback=======================>'); 673 }; 674 wantAgent.equal(wantAgentObj1, wantAgentObj2, equalCallback); 675} 676 677wantAgent.getWantAgent({ 678 wants: [ 679 { 680 deviceId: 'deviceId', 681 bundleName: 'com.neu.setResultOnAbilityResultTest1', 682 abilityName: 'com.example.test.EntryAbility', 683 action: 'action1', 684 entities: ['entity1'], 685 type: 'MIMETYPE', 686 uri: 'key={true,true,false}', 687 parameters: 688 { 689 mykey0: 2222, 690 mykey1: [1, 2, 3], 691 mykey2: '[1, 2, 3]', 692 mykey3: 'ssssssssssssssssssssssssss', 693 mykey4: [false, true, false], 694 mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], 695 mykey6: true, 696 } 697 } 698 ], 699 operationType: wantAgent.OperationType.START_ABILITY, 700 requestCode: 0, 701 wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] 702}, getWantAgentCallback); 703``` 704 705 706 707## wantAgent.equal 708 709equal(agent: WantAgent, otherAgent: WantAgent): Promise\<boolean\> 710 711判断两个WantAgent实例是否相等,以此来判断是否是来自同一应用的相同操作。使用Promise异步回调。 712 713**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 714 715**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 716 717**参数:** 718 719| 参数名 | 类型 | 必填 | 说明 | 720| ---------- | --------- | ---- | ------------- | 721| agent | WantAgent | 是 | WantAgent对象。 | 722| otherAgent | WantAgent | 是 | WantAgent对象。 | 723 724**返回值:** 725 726| 类型 | 说明 | 727| ----------------------------------------------------------- | ------------------------------------------------------------ | 728| Promise\<boolean\> | 以Promise形式返回获取判断两个WantAgent实例是否相等的结果。返回true表示两个WantAgent实例相等;返回false表示不相等。 | 729 730**示例:** 731 732```ts 733import wantAgent, { WantAgent as _WantAgent } from '@ohos.wantAgent'; 734 735//wantAgent对象 736let wantAgentObj1: _WantAgent; 737let wantAgentObj2: _WantAgent; 738 739wantAgent.getWantAgent({ 740 wants: [ 741 { 742 deviceId: 'deviceId', 743 bundleName: 'com.neu.setResultOnAbilityResultTest1', 744 abilityName: 'com.example.test.EntryAbility', 745 action: 'action1', 746 entities: ['entity1'], 747 type: 'MIMETYPE', 748 uri: 'key={true,true,false}', 749 parameters: 750 { 751 mykey0: 2222, 752 mykey1: [1, 2, 3], 753 mykey2: '[1, 2, 3]', 754 mykey3: 'ssssssssssssssssssssssssss', 755 mykey4: [false, true, false], 756 mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], 757 mykey6: true, 758 } 759 } 760 ], 761 operationType: wantAgent.OperationType.START_ABILITY, 762 requestCode: 0, 763 wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] 764}).then((data) => { 765 console.info('==========================>getWantAgentCallback=======================>'); 766 wantAgentObj1 = data; 767 wantAgentObj2 = data; 768 if (data) { 769 wantAgent.equal(wantAgentObj1, wantAgentObj2).then((data) => { 770 console.info('==========================>equalCallback=======================>'); 771 }); 772 } 773}); 774``` 775 776## WantAgentFlags 777 778**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 779 780**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 781 782| 名称 | 值 | 说明 | 783| ------------------- | -------------- | ------------------------------------------------------------ | 784| ONE_TIME_FLAG | 0 | WantAgent仅能使用一次。 | 785| NO_BUILD_FLAG | 1 | 如果说明WantAgent对象不存在,则不创建它,直接返回null。 | 786| CANCEL_PRESENT_FLAG | 2 | 在生成一个新的WantAgent对象前取消已存在的一个WantAgent对象。 | 787| UPDATE_PRESENT_FLAG | 3 | 使用新的WantAgent的额外数据替换已存在的WantAgent中的额外数据。 | 788| CONSTANT_FLAG | 4 | WantAgent是不可变的。 | 789| REPLACE_ELEMENT | 5 | 当前Want中的element属性可被WantAgent.trigger()中Want的element属性取代。 | 790| REPLACE_ACTION | 6 | 当前Want中的action属性可被WantAgent.trigger()中Want的action属性取代。 | 791| REPLACE_URI | 7 | 当前Want中的uri属性可被WantAgent.trigger()中Want的uri属性取代。 | 792| REPLACE_ENTITIES | 8 | 当前Want中的entities属性可被WantAgent.trigger()中Want的entities属性取代。 | 793| REPLACE_BUNDLE | 9 | 当前Want中的bundleName属性可被WantAgent.trigger()中Want的bundleName属性取代。 | 794 795## OperationType 796 797**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 798 799**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 800 801| 名称 | 值 | 说明 | 802| ----------------- | ------------- | ------------------------- | 803| UNKNOWN_TYPE | 0 | 不识别的类型。 | 804| START_ABILITY | 1 | 开启一个有页面的Ability。 | 805| START_ABILITIES | 2 | 开启多个有页面的Ability。 | 806| START_SERVICE | 3 | 开启一个无页面的ability。 | 807| SEND_COMMON_EVENT | 4 | 发送一个公共事件。 | 808 809## CompleteData 810 811**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 812 813**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 814 815| 名称 | 类型 | 必填 | 说明 | 816| -------------- | ------------------------------ | ---- | ---------------------- | 817| info | WantAgent | 是 | 触发的wantAgent。 | 818| want | Want | 是 | 存在的被触发的want。 | 819| finalCode | number | 是 | 触发wantAgent的请求代码。| 820| finalData | string | 是 | 公共事件收集的最终数据。 | 821| extraInfo | { [key: string]: any } | 否 | 额外数据。 | 822 823## WantAgent 824 825type WantAgent = object 826 827WantAgent对象。 828 829**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 830 831**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 832 833| 类型 | 说明 | 834| --- | --- | 835| object | WantAgent对象。 | 836