【Harmony OS - 消息通知】

news2025/1/11 13:55:21

应用可以通过接口发送通知消息,提醒用户关注应用中的变化。用户可以在通知栏查看和操作通知内容,通常用于当应用处于后台时,发送,本文主要来介绍在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, // 拉起一个ability
   wantAgentFlags: [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.coloradmin.cn/o/1374999.html

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

相关文章

Qt 窗口阴影边框

环境:Qt 5.15 VS2019 方法一:QGraphicsDropShadowEffect 实现方法参考链接:https://blog.csdn.net/goforwardtostep/article/details/99549750 使用此方法添加窗口阴影,会出现警告信息: 且窗口最大化与还原切换时会…

facebook广告的基础知识与类型

Facebook广告是在Facebook平台上展示的一种数字广告形式,它允许广告主通过定位特定的受众群体来推广他们的产品、服务或品牌。以下是一些关于Facebook广告的基础知识: 支持Facebook广告的卡、556150、532959,点击获取 广告形式: …

【排序算法】三、选择排序(C/C++)

「前言」文章内容是排序算法之选择排序的讲解。(所有文章已经分类好,放心食用) 「归属专栏」排序算法 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 选择排序1.1 原理1.2 代码实现(C/C)1.3 优化1.3 特性总结 选择排…

SpringBoot外部配置文件

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 循序渐进学SpringBoot ✨特色专栏&…

232Modbus转Profinet应用案例分享

现场需求:现场需要将多台伺服接到控制器(1200PLC)上,用Modbus协议。 根据现场的描述,我们给出一个方案,在PLC和伺服中间加入232Modbus转Profinet(XD-PNR200)网关,232Modb…

【PaperReading】2. MM-VID

Category Content 论文题目 MM-VID: Advancing Video Understanding with GPT-4V(ision) 作者 Kevin Lin, Faisal Ahmed, Linjie Li, Chung-Ching Lin, Ehsan Azarnasab, Zhengyuan Yang, Jianfeng Wang, Lin Liang, Zicheng Liu, Yumao Lu, Ce Liu, Lijuan Wang (Microso…

使用pygame.draw绘制基本图形

import pygame# 初始化pygame pygame.init()# 创建显示窗口 screen pygame.display.set_mode((640, 480)) pygame.display.set_caption("绘制基本图形")# 定义颜色 BLACK (0, 0, 0) WHITE (255, 255, 255) RED (255, 0, 0) GREEN (0, 255, 0) BLUE (0, 0, 255)…

centos7下升级nginx1.8.0版本到nginx1.25.3版本

1、指定目录下载安装包 wget http://nginx.org/download/nginx-1.25.3.tar.gz 2、重命名老版本nginx目录 cd /usr/local/ mv nginx nginx_1.8.0 3、解压更新版本的压缩包 tar -zxvf nginx-1.25.3.tar.gz 4、进入nginx安装包目录下执行如下命令检测系统环境 --with-stream: 添…

【Docker】Docker安装入门教程及基本使用

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Docker实战》。🎯🎯 &…

数据库用户密码修改时间和密码加密值查询(DM8:达梦数据库)

DM8:达梦数据库用户密码加密值查询 环境介绍1 查询达梦数据库密码修改时间与加密值2 查询数据库密码相同的用户3 达梦数据库学习使用列表 环境介绍 要查询用户密码修改时间,用第一个sql;要查询哪些数据库用户密码是一样的,用第二个sql;若忘记达梦数据库用户密码,1 可以试错,2 …

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

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

rime中州韵小狼毫 滤镜与字典的区别

在rime中州韵小狼毫须鼠管输入法中,可以灵活的配置 自定义词典 (rime中州韵小狼毫 自定义词典)和 词组滤镜 (rime中州韵小狼毫 联想词组 滤镜)。而且 自定义词典 和 词组滤镜 看起来效果似乎没有区别。然而,这两者之间的区别,是十分巨大的&am…

Redis学习指南(0)-专栏前言

前言 欢迎来到这个关于Redis的全面教程。Redis,即Remote Dictionary Server,是一款开源的、高性能的内存键值存储系统。它在互联网领域的数据存储和处理中扮演着重要的角色,被广泛应用于缓存、消息队列、实时统计、分布式锁等场景。本专栏将…

ssm框架的简单整合!!!(配置环境)

项目结构&#xff1a; pom.xml: <packaging>war</packaging><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</proj…

jsPlumb、mxGraph和Antv x6实现流程图选型

解决方案 结合我们项目以及主流解决方案&#xff0c;提供以下几种方案&#xff1a; 序号技术栈性质是否开源说明1jsPlumb国外框架社区版、商业版中台项目现有方案2mxGraph国外框架开源比较有名的开源绘图网站draw.io &#xff08;和processOn类似&#xff09;&#xff0c;使用…

Java lambda表达式如何自定义一个toList Collector

匿名类&#xff1a; package l8;import java.util.*; import java.util.function.BiConsumer; import java.util.function.BinaryOperator; import java.util.function.Function; import java.util.function.Supplier; import java.util.stream.Collector; import java.util.s…

Next.js 学习笔记(五)——渲染

渲染 渲染将你编写的代码转换到用户界面。React 和 Next.js 允许你创建混合 web 应用程序&#xff0c;其中部分代码可以在服务器或客户端上呈现。本节将帮助你了解这些渲染环境、策略和运行时之间的差异。 基本知识 首先&#xff0c;下列对熟悉三个基本的网络概念是有帮助的…

黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(4)员工管理|修改员工、配置文件

指路&#xff08;1&#xff09;&#xff08;2&#xff09;&#xff08;3&#xff09;&#x1f447; 黑马程序员JavaWeb开发|案例&#xff1a;tlias智能学习辅助系统&#xff08;1&#xff09;准备工作、部门管理_tlias智能学习辅助系统的需求分析-CSDN博客https://blog.csdn.n…

特征工程-特征清洗

特征清洗 在进行玩特征理解后&#xff0c;我们大致理解了面对的数据中包含哪些内容。下一阶段&#xff0c;我么需要对数据中的内容进行进一步分析处理&#xff0c;针对不同数据进行清洗。数据清洗是对数据进行重新审查和校验的过程&#xff0c;目的在于删除重复信息、纠正存在…

中国大学生计算机设计大赛—人工智能实践赛赛道—赛后感想

1.比赛介绍 中国大学生计算机设计大赛是我国高校面向本科生最早的赛事之一&#xff0c;是全国普通高校大学生竞赛排行榜榜单赛事之一。自2008年开赛至2019年&#xff0c;一直由教育部高校与计算机相关教指委等或独立或联合主办。大赛的目的是以赛促学、以赛促教、以赛促创&…