1# WantAgent开发指导 2## 场景简介 3WantAgent封装了一个行为意图信息,可以通过WantAgent.trigger接口主动触发,也可以通过与通知绑定被动触发。 4 5具体的行为包括:启动Ability和发布公共事件。 6 7## 接口说明 8| 接口名 | 接口描述 | 9| ---------------------------------------------------------------------------------------------- | ----------- | 10| getWantAgentInfo(info: WantAgentInfo, callback: AsyncCallback\<WantAgent\>) | 以异步回调形式创建WantAgent对象。 | 11| getWantAgent(info: WantAgentInfo): Promise\<WantAgent\> | 以Promise形式创建WantAgent对象。 | 12| trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback\<CompleteData\>) | 触发WantAgent。 | 13 14## 开发步骤 151. 导入WantAgent模块。 16 17 ``` 18 import wantAgent from '@ohos.wantAgent'; 19 ``` 20 212. 创建拉起Ability的WantAgentInfo信息。详细的WantAgentInfo信息数据类型及包含的参数请见[WantAgentInfo文档](../reference/apis/js-apis-wantAgent.md#wantagentinfo)介绍。 22 23 ``` 24 private wantAgentObj = null // 用于保存创建成功的wantAgent对象,后续使用其完成触发的动作。 25 26 // wantAgentInfo 27 var wantAgentInfo = { 28 wants: [ 29 { 30 deviceId: "", 31 bundleName: "com.example.test", 32 abilityName: "com.example.test.MainAbility", 33 action: "", 34 entities: [], 35 uri: "", 36 parameters: {} 37 } 38 ], 39 operationType: wantAgent.OperationType.START_ABILITY, 40 requestCode: 0, 41 wantAgentFlags:[wantAgent.WantAgentFlags.CONSTANT_FLAG] 42 } 43 ``` 44 453. 创建发布公共事件的WantAgentInfo信息。 46 47 ``` 48 private wantAgentObj = null // 用于保存创建成功的WantAgent对象,后续使用其完成触发的动作。 49 50 // wantAgentInfo 51 var wantAgentInfo = { 52 wants: [ 53 { 54 action: "event_name", // 设置事件名。 55 parameters: {} 56 } 57 ], 58 operationType: wantAgent.OperationType.SEND_COMMON_EVENT, 59 requestCode: 0, 60 wantAgentFlags:[wantAgent.WantAgentFlags.CONSTANT_FLAG] 61 } 62 ``` 63 644. 创建WantAgent,保存返回的WantAgent对象wantAgentObj,用于执行后续触发操作。 65 66 ``` 67 // 创建WantAgent 68 wantAgent.getWantAgent(wantAgentInfo, (err, wantAgentObj) => { 69 if (err.code) { 70 console.error("[WantAgent]getWantAgent err=" + JSON.stringify(err)) 71 } else { 72 console.log("[WantAgent]getWantAgent success") 73 this.wantAgentObj = wantAgentObj 74 } 75 }) 76 ``` 77 785. 触发WantAgent。 79 80 ``` 81 // 触发WantAgent。 82 var triggerInfo = { 83 code:0 84 } 85 wantAgent.trigger(wantAgentObj, triggerInfo, (completeData) => { 86 console.log("[WantAgent]getWantAgent success, completeData: ", + JSON.stringify(completeData)) 87 }) 88 ``` 89