> 文档中心 > HarmonyOS/OpenHarmony应用开发-ArkTS语言FA模型WantAgent使用

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


场景简介

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

开发步骤

导入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",
    9.             action: "",
    10.             entities: [],
    11.             uri: "",
    12.             parameters: {}
    13.         }
    14.     ],
    15.     operationType: wantAgent.OperationType.START_ABILITY,
    16.     requestCode: 0,
    17.     wantAgentFlags:[wantAgent.WantAgentFlags.CONSTANT_FLAG]
    18. }

创建发布公共事件的WantAgentInfo信息

    1. private wantAgentObj = null    //用于保存创建成功的WantAgent对象,后续使用其完成触发的动作。
    2. //wantAgentInfo
    3. var wantAgentInfo = {
    4.     wants: [
    5.         {
    6.             action: "event_name", // 设置事件名
    7.             parameters: {}
    8.         }
    9.     ],
    10.     operationType: wantAgent.OperationType.SEND_COMMON_EVENT,
    11.     requestCode: 0,
    12.     wantAgentFlags:[wantAgent.WantAgentFlags.CONSTANT_FLAG]
    13. }

创建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官方文档材料。 

365PC电脑装机网