首页 > 其他分享 >鸿蒙原生应用/元服务开发-通知添加行为意图

鸿蒙原生应用/元服务开发-通知添加行为意图

时间:2024-01-05 15:34:58浏览次数:32  
标签:原生 err 鸿蒙 意图 WantAgent 通知 wantAgent 添加 let

WantAgent提供了封装行为意图的能力,这里所说的行为意图主要是指拉起指定的应用组件及发布公共事件等能力。HarmonyOS支持以通知的形式,将WantAgent从发布方传递至接收方,从而在接收方触发WantAgent中指定的意图。例如,在通知消息的发布者发布通知时,通常期望用户可以通过通知栏点击拉起目标应用组件。为了达成这一目标,开发者可以将WantAgent封装至通知消息中,当系统接收到WantAgent后,在用户点击通知栏时触发WantAgent的意图,从而拉起目标应用组件。

为通知添加行为意图的实现方式如下图所示:发布通知的应用向应用组件管理服务AMS(Ability Manager Service)申请WantAgent,然后随其他通知信息一起发送给桌面,当用户在桌面通知栏上点击通知时,触发WantAgent动作。

图携带行为意图的通知运行机制

鸿蒙原生应用/元服务开发-通知添加行为意图_公共事件


接口说明

具体接口描述。

鸿蒙原生应用/元服务开发-通知添加行为意图_封装_02


开发步骤

1.导入模块。

import NotificationManager from '@ohos.notificationManager';
import wantAgent from '@ohos.app.ability.wantAgent';

2.创建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的WantAgentInfo信息。

let wantAgentObj = null; // 用于保存创建成功的WantAgent对象,后续使用其完成触发的动作。

// wantAgentInfo
let wantAgentInfo = {
    wants: [
        {
            action: 'event_name', // 设置事件名。
            parameters: {},
        }
    ],
    operationType: wantAgent.OperationType.SEND_COMMON_EVENT,
    requestCode: 0,
    wantAgentFlags: [wantAgent.WantAgentFlags.CONSTANT_FLAG],
}

3.创建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;
    }
});

4.构造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,
}

5.发布WantAgent通知。

// 通知发送
NotificationManager.publish(notificationRequest, (err) => {
    if (err) {
        console.error(`[ANS] failed to publish, error[${err}]`);
        return;
    }
    console.info(`[ANS] publish success `);
});

6.用户通过点击通知栏上的通知,即可触发WantAgent的动作。

7.最终效果呈现如下图,在实际上架的使用过程中 ,API9是没法实现分享的作用的,主要原因是其它设备不一定完成了鸿蒙的适配,同时分享有特定的限制约束条件。期待尽快完成应用/元服务分享的闭环。

鸿蒙原生应用/元服务开发-通知添加行为意图_Test_03


本文主要参考HarmonyOS官方文档整理而成

标签:原生,err,鸿蒙,意图,WantAgent,通知,wantAgent,添加,let
From: https://blog.51cto.com/u_14946066/9114704

相关文章

  • 【云原生 | Kubernetes 系列】— Kubernetes存储方案
    目录【云原生|Kubernetes系列】—Kubernetes存储方案......
  • HarmonyOS鸿蒙操作系统架构
    HarmonyOS鸿蒙操作系统是基于微内核架构的,其核心组件包括:1.调度器(Scheduler):负责任务的调度和执行。2.内存管理(MemoryManagement):负责内存的分配、回收和保护。3.文件系统(FileSystem):负责对存储设备的访问和管理。4.设备驱动(DeviceDriver):负责硬件设备的控制和管理。5.网络......
  • 手撕Vuex-添加全局$store
    经过上一篇的介绍,了解到了Vuex的实现本质就是一个插件,所以要做的事情就是实现这个插件的代码编写即可。本篇文章主要是实现一个全局的$store,这个$store是挂载在Vue的原型上的,所以在任何一个组件当中都可以通过this.$store访问到。我们先来看看Vue官方的,我们分别在App.v......
  • 手撕Vue-Router-添加全局$router属性
    前言经过上一篇文章的介绍,完成了初始化路由相关信息的内容,接下来我们需要将路由信息挂载到Vue实例上,这样我们就可以在Vue实例中使用路由信息了。简而言之就是给每一个Vue实例添加一个$router属性,这个属性就是我们在上一篇文章中创建的VueRouter实例。实现思路我们需要在Vue实例创建......
  • 想快人一步!不得不看的《鸿蒙(HarmonyOS)学习指南》
    鸿蒙就是鸿蒙,安卓就是安卓据鸿蒙产业链人士透露,华为下一代鸿蒙5.0版本或将不再兼容安卓系统,此举意味着鸿蒙系统将退出Android生态圈,华为手机也将只支持鸿蒙系统应用。今后国内手机操作系统,将形成由安卓与iOS两大阵营演变成Android、iOS、Harmony三分天下的局面。随着鸿蒙发展速度越......
  • 170万人参加鸿蒙学堂官方培训,还要犹豫加入鸿蒙吗?
    你一定想不到的在一年一度的开发者大会以外,华为还在日常举行各种线上、线下,或者直接深入校园的开发者活动。HarmonyOS创新实训营、HUAWEIDeveloperDay、华为校园开发者计划等等不胜枚举,似乎已然覆盖互联网相关行业的个角落。超乎人们的意料,今年已有超过170万人参加了鸿蒙学......
  • 礼品卡原生卡包预约项目优惠劵余额卡转增小程序开发
    礼品卡原生卡包预约项目优惠劵余额卡转增小程序开发用户登录和注册:用户可以使用手机号码或其他方式登录和注册账户。资讯浏览:用户可以浏览最新的项目资讯,了解相关的优惠信息和活动信息。项目预约:用户可以浏览可预约的项目列表,并选择感兴趣的项目进行预约。预约成功后,用户会收到预约......
  • 鸿蒙原生应用/元服务开发-发布进度条类型通知
    进度条通知也是常见的通知类型,主要应用于文件下载、事务处理进度显示。HarmonyOS提供了进度条模板,发布通知应用设置好进度条模板的属性值,如模板名、模板数据,通过通知子系统发送到通知栏显示。目前系统模板仅支持进度条模板,通知模板NotificationTemplate中的data参数为用户自定义数......
  • 如何在 Geany 中添加对 Python 语言的支持
    Geany是一个轻量级的集成开发环境(IDE),它支持多种编程语言,包括Python。在Geany中添加对Python语言的支持可以提供更好的代码编辑和调试体验。下面是在Geany中添加对Python语言支持的步骤:步骤一:安装Python首先,确保已在您的计算机上安装了Python。安装完成后,可以在命令行中输入`python-......
  • 鸿蒙原生应用再添新丁!搜狐集团、航旅纵横入局鸿蒙
    鸿蒙原生应用再添新丁!搜狐集团、航旅纵横入局鸿蒙来自@HarmonyOS 微博12月28日消息,搜狐集团宣布与华为达成全面合作!搜狐新闻近期将完成#鸿蒙原生应用#核心功能版本,搜狐视频也启动了#鸿蒙原生应用#开发!这不仅是一次技术上的交流与合作,更是对于未来应用与服务体验的探索与创新。相......