【Harmony OS - 消息通知】

应用可以通过接口发送通知消息,提醒用户关注应用中的变化。用户可以在通知栏查看和操作通知内容,通常用于当应用处于后台时,发送,本文主要来介绍在Harmony OS中的三种消息通知。

基础通知

总体流程有三步:

  1. 导入notification模块
  2. 配置通知参数之后通过publish发布通知
  3. 取消通知

1、导入notification

import notificationManager from '@ohos.notificationManager';

2、发布通知

let request: notificationManager.NotificationRequest = {id: 0,content: {contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT}}notificationManager.publish(request).then(() => {console.log('发送通知成功')}).catch(err => {console.log('发送通知失败')})

这里的id就是通知的唯一标识,后续可以通过id然后调用cancel函数来取消通知。

其中conentType有四个枚举:
在这里插入图片描述
当contentType为图片型的时候,需要传入一个PixelMap的图片数据,这个可以通过提供这样的方式来获取:

// 获取资源管理器const resourcemanage = getContext(this).resourceManager;// 获取图片资源const imgFile = await resourcemanage.getMediaContent($r('xxxx'));// 创建PixelMap数据// image需要从@ohos.multimedia.image导入image.createImageSource(imgFile.buffer).createPixelMap().then(val => this.piexlMap = val).catch(err => console.log(err))

3、取消通知
Harmony O提供了两种方式来取消通知,第一种就是上方提到的根据id取消,第二种则是调用cancelAll来取消所有的通知信息。

notificationManager.cancel(id)
notificationManager.cancelAll()

详细的request请求参数api查看官网:NotificationRequest

进度条通知

进度条通知会展示一个动态的进度条,主要用于文件下载、长任务处理的实时进度显示
主要也是三步:

  • 判断系统是否支持进度条模版
  • 配置进度条模版参数
  • 根据参数发送模版通知

1、通过isSupportTemplate是否支持,异步返回Promose回调

const isSupport = await notificationManager.isSupportTemplate('process');
if(!isSupport) return;

2、配置进度条模版参数

const templateParams = {name: 'process',data: {progressValue: this.progressValue, // 当前进度值ProgressMaxValue: 100 // 进度条最大值}}const request: notificationManager.NotificationRequest = {id: 0,template: templateParams, // 较基础通知新增进度模版配置content: {} // 配置和基础通知一致}

3、根据参数发送模版通知

notificationManager.publish(request).then(() => {console.log('发送通知成功')
}).catch(err => {console.log('发送通知失败')
})

行为意图通知

我们可以给通知或者通知中的按钮设置行为意图,从而实现拉起应用组件或发布公共事件等能力。说白了,就是我们可以通过点击消息栏中的通知重新回到指定应用或者做一些事情。
主要是三个步骤:

  • 创建wantInfo,行为意图配置
  • 创建WantAgentInfo实例
  • 发送携带意图的通知
    1、 创建行为意图配置
const wantInfo: wantAgent.WantAgentInfo = {wants: [{deviceId: '', // 默认本机bundleName: 'com.example.myapplication', // 拉起的应用abilityName: 'EntryAbility', // 拉起当前应用的那个ability}],requestCode: 0,operationType: wantAgent.OperationType.START_ABILITY, // 拉起一个abilitywantAgentFlags: [wantAgent.WantAgentFlags.CONSTANT_FLAG]}

这里只是简单列了一些,具体请查看官网:WantAgentInfo

2、创建WantAgentInfo实例

// 创建wantAgent实例
const wantAgentInstance = await wantAgent.getWantAgent(wantInfo);

3、发送携带意图的通知
和发送进度条通知一样,在基础通知中添加一个配置wantAgent即可,

const request: notificationManager.NotificationRequest = {id: 0,template: templateParams,wantAgent: this.wantAgentInstance,content: {} // 配置和基础通知一致}// 发布行为意图通知notificationManager.publish(request).then(() => {console.log('发送通知成功')
}).catch(err => {console.log('发送通知失败')
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/614383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

确定了!软考中级「集成」、「监理」新版教程有哪些变化?

新版教程改了哪些内容?2024上半年软考应该如何备考? 准备考24年上集成的朋友们,先不要慌!备考脚步不要乱,改版可能还是好事呢,难度可能会降点? 2024年教程改版科目: ✔软考中级-集…

ARM汇编指令

数据和指令类型 ARM采用的是32位架构 ARM约定: Byte:8 bits Halfword:16 bits (2 byte) Word:32 bits (4 byte) Doubleword:64-bits(8byte) (Cortex-A处理器) 大部分ARM core …

优化改进YOLOv5算法之Deformable Attention,效果秒杀CBAM和CA等

目录 1 Deformable Attention模块原理 2 YOLOv5中加入Deformable Attention模块 2.1 common.py文件配置 2.2 yolo.py配置

由于找不到msvcp140.dll无法继续执行代码原因及解决教程分享

在计算机打开软件过程,我们经常会遇到一些错误提示,其中之一就是“由于找不到msvcp140.dll无法继续执行代码”。这个错误通常发生在使用Microsoft Visual C 2015或更高版本编译的程序运行时。那么,什么是msvcp140.dll文件?为什么会…

59.螺旋矩阵II

class Solution { public:vector<vector<int>> generateMatrix(int n) {//二维数组初始化 // int dis[4][4]{{-1,0},{1,0},{0,-1},{0,1}};int dis[4][4]{{0,1},{1,0},{0,-1},{-1,0}};//右下左上 0,1,2,3//cout<< dis[0][0]<<" "<<dis…

定制耐酸碱移液吸头PFA移液枪头可重复使用

移液枪是移液器的一种&#xff0c;常用于实验室少量或微量液体的移取&#xff0c;规格不同&#xff0c;不同规格的移液枪配套使用不同大小的枪头&#xff0c;不同生产厂家生产的形状也略有不同&#xff0c;但工作原理及操作方法基本一致。移液枪属精密仪器&#xff0c;使用及存…

C++函数(3)

纯粹素数 题目描述&#xff1a;纯粹素数是这样定义的&#xff1a;一个素数&#xff0c;去掉最高位&#xff0c;剩下的数仍为素数&#xff0c;再去掉剩下的数的最高位&#xff0c;余下的数还是素数。这样下去一直到最后剩下的个位数也还是素数。求出所有小于3000的四位的纯粹素…

电脑可以连接网络但浏览器无法访问部分或全部网页

啾咪&#xff01;离大谱了&#xff0c;电脑一段时间没有用&#xff0c;最近打开却发现可以连接网络但是无法访问部分网页&#xff08;如CSDN&#xff09;&#xff0c;显示如下&#xff1a; 有三种解决方法&#xff1a; &#xff08;1&#xff09;清除DNS缓存 步骤&#xff1a;…

离散数学3

补变元 解释&#xff1a;它是以反^作为一组一组的&#xff0c;因此&#xff0c;对于P反^Q来说&#xff0c;P是一组&#xff0c;Q是一组&#xff0c;又有以下&#xff1a;对缺少变元的项要补齐&#xff0c;P缺少Q&#xff0c;Q缺少P。因此&#xff0c;补齐。 用分配律展开 解释&…

useEffect监听多个变量

useEffect监听了多个变量怎么办&#xff1f; 前言 如何监听多个变量&#xff1f;在React开发中经常会遇到的问题。随着应用复杂性的增加&#xff0c;组件中可能涉及多个状态的变化&#xff0c;根据这种变化可以做相应的业务&#xff0c;这时候监听就变得很有必要了。 常见的…

C#,入门教程(15)——类(class)的基础知识

上一篇&#xff1a; C#&#xff0c;入门教程(14)——字符串与其他数据类型的转换https://blog.csdn.net/beijinghorn/article/details/124004562 物以类聚&#xff0c;凡物必类。 类的使用&#xff0c;须遵循几个简单的原则&#xff1a; &#xff08;1&#xff09;能类则类&a…

系统学习Python——警告信息的控制模块warnings:测试警告

分类目录&#xff1a;《系统学习Python》总目录 要测试由代码引发的警告&#xff0c;我们可以采用catch_warnings上下文管理器。有了它&#xff0c;就可以临时改变警告过滤器以方便测试。例如&#xff0c;以下代码可捕获所有的警告以便查看&#xff1a; import warningsdef fx…

使用 Ant Design Pro 的图表(展示cpu、内存、硬盘)

文章目录 使用 Ant Design Pro 的图表&#xff08;展示cpu、内存、硬盘&#xff09;一、Ant Design Charts 图表二、快速上手三、ant design chart 图表类型StatisticCard 指标卡结合 Ant Design Charts 图表库丰富数值内容&#xff0c;满足大多数数值展示的场景什么是水波图&a…

鸿蒙原生应用再添新丁!万达 入局鸿蒙

鸿蒙原生应用再添新丁&#xff01;万达 入局鸿蒙 来自 HarmonyOS 微博1月11日消息&#xff0c;#万达酒店及度假村启动鸿蒙原生应用及元服务开发# 作为具有中国特色的国牌服务酒店标杆之一&#xff0c;万达酒店及度假村Wanda 将带来全新的服务和交互方式&#xff0c;一步获取“…

网络之路28:二层链路聚合

正文共&#xff1a;1666 字 14 图&#xff0c;预估阅读时间&#xff1a;2 分钟 目录 网络之路第一章&#xff1a;Windows系统中的网络 0、序言 1、Windows系统中的网络1.1、桌面中的网卡1.2、命令行中的网卡1.3、路由表1.4、家用路由器 网络之路第二章&#xff1a;认识企业设备…

计算机的中断

将用户态转换为内核态 系统调用&#xff1a;应用程序向OS发出服务请求异常&#xff1a;不良的应用程序的非法指令中断&#xff1a;来源于外部设备&#xff0c;即不同的硬件设备的计时器和网络中断&#xff0c;其对应用程序是透明的 应用调用外设 应用——>OS——>外设…

微信小程序如何使用天地图的逆地理编码api

本文只介绍如何使用天地图api&#xff0c;如若要显示天地图&#xff0c;使用 web-view 天地图逆地理编码api 1、使用wx.request 发送请求 getLocation() {wx.getLocation({type: gcj02,success: (res) > {// 调用天地图逆地理编码apithis.initTianDiMap(res.longitude, re…

代理IP的计费方式有哪些?

代理IP是网络爬虫、数据分析、电商运营等网络活动的必备工具&#xff0c;可以从优质的代理IP提供商中购买&#xff0c;那么代理 IP 服务的付费模式主要有哪些呢&#xff1f; 1、按量计费 按量计费是一种按照实际使用量来收费的方式。一般来说&#xff0c;这种计费方式的单价会…

华为OD机试真题-字符串拼接-2023年OD统一考试(C卷)

题目描述: 给定M(0<M<=30)个字符(a-z),从中取出任意字符(每个字符只能用一次)拼接成长度为N(0<N<=5)的字符串,要求相同的字符不能相邻,计算出给定的字符列表能拼接出多少种满足条件的字符串,输入非法或者无法拼接出满足条件的字符串则返回0。 输入描述: …