【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年教程改版科目: ✔软考中级-集…

由于找不到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;使用及存…

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

啾咪&#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;补齐。 用分配律展开 解释&…

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

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

使用 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;认识企业设备…

Backtrader 文档学习-Strategy with Signals

Backtrader 文档学习-Strategy with Signals backtrader可以不通过重写策略的方式触发交易&#xff0c;尽管重写策略是首选通用的方式。 下面介绍通过使用信号也是可以实现交易触发的。 1.定义signal import backtrader as btdata bt.feeds.OneOfTheFeeds(datanamemydatana…

14. C++ malloccallocrecalloc

一、malloc函数 谈到malloc函数相信学过c语言的人都很熟悉&#xff0c;但是malloc底层到底做了什么又有多少人知道。 1.1 关于malloc相关的几个函数 可以这样认为&#xff08;window下&#xff09;原型&#xff1a; extern void *malloc(unsigned int num_bytes);如果分配成…

怎么用 Excel 做出专业的 project 甘特图?10个步骤和60个模板

使用Excel来创建Project甘特图的步骤包括&#xff1a;1、基本设置和布局调整、2、数据输入和时间线配置、3、任务依赖性和进度跟踪、4、视觉效果优化、5、数据更新和维护、6、模板保存和共享。尤其突出基本设置和布局调整&#xff0c;它是构建一个清晰、有效的甘特图的基础。 甘…

基于龙格库塔算法的SIR病毒扩散预测matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于龙格库塔算法的SIR病毒扩散预测,通过龙格库塔算法求解传染病模型的微分方程。输出易受感染人群数量曲线&#xff0c;感染人群数量曲线&#xff0c;康复人群数…

nextjs + ahooks 报错 Cannot use import statement outside a module

在 nextjs 中使用 ahooks 时&#xff0c;报错 SyntaxError: Cannot use import statement outside a module&#xff0c;如下图所示&#xff1a; 解决方案 transpilePackages 官网介绍 Next.js can automatically transpile and bundle dependencies from local packages (lik…

【Flutter 开发实战】Dart 基础篇:常见的数据类型

Dart 支持许多数据类型&#xff0c;包括我们常见的 Numbers&#xff08;数值类型&#xff09;、Strings&#xff08;字符串类型&#xff09;、Booleans&#xff08;布尔类型&#xff09;&#xff0c;也支持一些包括 Collections&#xff08;集合类型&#xff09;、Records&…

idea编译报错(Maven项目)

idea编译报错 找不到符号 第一步&#xff1a;开启注解处理器 第二步&#xff1a;清理MVN&#xff0c;package并重新编译 第三步&#xff1a;重新导入项目&#xff1a;

vue element-ui的table列表中展示缩略图片效果实例

这篇文章主要给大家介绍了关于vue element-ui的table列表中展示多张图片(可放大)效果的相关资料,文中通过代码示例介绍的非常详细,需要的朋友可以参考下 一、效果图 二、代码部分 1、原理 使用 <el-table-column> 和 <el-image> 组件来在表格中插入缩略图 2、te…

杨中科 .NETCORE NuGet

一 简介 Zack.EFCore.Batch 使用这个开发包Entity Framework Core用户可以使用LINQ语句删除或者更新多条数据库记录&#xff0c;操作只执行一条SQL语句并且不需要首先把实体对象加载到内存中。这个开发包支持Entity Framework Core 5.0以及更高版。 操作说明: 第一步 Install-…