上海建筑网站建设,国外展柜网站,阿里云网站开发服务器,资讯网站 怎么做概述
WantAgent提供了封装行为意图的能力#xff0c;这里所说的行为意图主要是指拉起指定的应用组件及发布公共事件等能力。HarmonyOS支持以通知的形式#xff0c;将WantAgent从发布方传递至接收方#xff0c;从而在接收方触发WantAgent中指定的意图。例如#xff0c;在通…概述
WantAgent提供了封装行为意图的能力这里所说的行为意图主要是指拉起指定的应用组件及发布公共事件等能力。HarmonyOS支持以通知的形式将WantAgent从发布方传递至接收方从而在接收方触发WantAgent中指定的意图。例如在通知消息的发布者发布通知时通常期望用户可以通过通知栏点击拉起目标应用组件。为了达成这一目标开发者可以将WantAgent封装至通知消息中当系统接收到WantAgent后在用户点击通知栏时触发WantAgent的意图从而拉起目标应用组件。
为通知添加行为意图的实现方式如下图所示发布通知的应用向应用组件管理服务AMSAbility Manager Service申请WantAgent然后随其他通知信息一起发送给桌面当用户在桌面通知栏上点击通知时触发WantAgent动作
携带行为意图的通知运行机制 使用方法速食版 详细介绍版
接口说明
具体接口描述详见WantAgent接口文档。
getWantAgent(info: WantAgentInfo, callback: AsyncCallbackWantAgent): void创建WantAgenttrigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: CallbackCompleteData): void触发WantAgent意图cancel(agent: WantAgent, callback: AsyncCallbackvoid): void取消WantAgentgetWant(agent: WantAgent, callback: AsyncCallbackWant): void获取WantAgent的wantequal(agent: WantAgent, otherAgent: WantAgent, callback: AsyncCallbackboolean): void判断两个WantAgent实例是否相等开发步骤
导入模块
import NotificationManager from ohos.notificationManager;
import wantAgent from ohos.app.ability.wantAgent;创建WantAgentInfo信息
创建拉起Ability的WantAgent的WantAgentInfo信息,详细文档请点击这里
let wantAgentObj null; // 用于保存创建成功的wantAgent对象后续使用其完成触发的动作。// 通过WantAgentInfo的operationType设置动作类型。
let wantAgentInfo {wants: [{deviceId: ,bundleName: com.example.test,abilityName: com.example.test.MainAbility,action: ,entities: [],uri: ,parameters: {}}],operationType: wantAgent.OperationType.START_ABILITY,requestCode: 0,wantAgentFlags:[wantAgent.WantAgentFlags.CONSTANT_FLAG]
}创建WantAgent
// 创建WantAgent
wantAgent.getWantAgent(wantAgentInfo, (err, data) {if (err) {console.error([WantAgent]getWantAgent err JSON.stringify(err));} else {console.info([WantAgent]getWantAgent success);wantAgentObj data;}
});构造NotificationRequest对象
// 构造NotificationRequest对象
let notificationRequest {content: {contentType: NotificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,normal: {title: Test_Title,text: Test_Text,additionalText: Test_AdditionalText,},},id: 1,label: TEST,wantAgent: wantAgentObj,
}发布WantAgent通知
// 通知发送
NotificationManager.publish(notificationRequest, (err) {if (err) {console.error([ANS] failed to publish, error[${err}]);return;}console.info([ANS] publish success );
});用户通过点击通知栏上的通知即可触发WantAgent的动作