[文章]HarmonyOS/OpenHarmony应用开发-ArkTS语言FA模型WantAgent使用

阅读量0
0
2

场景简介

[]()WantAgent封装了一个行为意图信息,可以通过WantAgent.trigger接口主动触发,也可以通过与通知绑定被动触发。具体的行为包括:启动Ability和发布公共事件。

接口说明

[]()接口名 接口描述
getWantAgentInfo(info: WantAgentInfo, callback: AsyncCallback) 以AsyncCallback形式创建WantAgent对象
getWantAgent(info: WantAgentInfo): Promise 以Promise形式创建WantAgent对象
trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback) 触发WantAgent

开发步骤

[]()1.

[]()[]()导入WantAgent模块。

  1. import wantAgent from '@ohos.wantAgent';

[]()[]()创建拉起Ability的WantAgentInfo信息,详细的WantAgentInfo信息数据类型及包含的参数请见WantAgentInfo文档介绍。

  1. private wantAgentObj = null //用于保存创建成功的wantAgent对象,后续使用其完成触发的动作。
  2. //wantAgentInfo
  3. var wantAgentInfo = {
  4. wants: [
        ```
    
  5. {
        ```
    
  6. deviceId: "",
        ```
    
  7. bundleName: "com.example.test",
        ```
    
  8. abilityName: "com.example.test.MainAbility",
        ```
    

action: "",

11. ```
entities: [],

uri: "",

13. ```
parameters: {}

}

15. ```
],

operationType: wantAgent.OperationType.START_ABILITY,

17. ```
requestCode: 0,

wantAgentFlags:[wantAgent.WantAgentFlags.CONSTANT_FLAG]

19. }
20. 

[]()[]()创建发布公共事件的WantAgentInfo信息

1. private wantAgentObj = null    //用于保存创建成功的WantAgent对象,后续使用其完成触发的动作。
2. 
3. //wantAgentInfo
4. var wantAgentInfo = {
5. ```
wants: [
    ```
  1. {
        ```
    
  2. action: "event_name", // 设置事件名
        ```
    
  3. parameters: {}
        ```
    
  4. }
        ```
    

],

11. ```
operationType: wantAgent.OperationType.SEND_COMMON_EVENT,

requestCode: 0,

13. ```
wantAgentFlags:[wantAgent.WantAgentFlags.CONSTANT_FLAG]
  1. }

[]()[]()创建WantAgent,保存返回的WantAgent对象wantAgentObj,用于执行后续触发操作。

  1. //创建WantAgent
  2. wantAgent.getWantAgent(wantAgentInfo, (err, wantAgentObj) => {
  3. if (err.code) {
        ```
    
  4. console.error("[WantAgent]getWantAgent err=" + JSON.stringify(err))
        ```
    
  5. } else {
        ```
    
  6. console.log("[WantAgent]getWantAgent success")
        ```
    
  7. this.wantAgentObj = wantAgentObj
        ```
    
  8. }
        ```
    
  9. })

[]()[]()触发WantAgent

  1. //触发WantAgent
  2. var triggerInfo = {
  3. code:0
        ```
    
  4. }
  5. wantAgent.trigger(wantAgentObj, triggerInfo, (completeData) => {
  6. console.log("[WantAgent]getWantAgent success, completeData: ",  + JSON.stringify(completeData))
        ```
    
  7. })

本文章主要引用HarmonyOS官方文档材料。

回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友