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