• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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