鸿蒙三方库 | harmony-utils之NotificationUtil基本通知发送详解
2026/7/23 18:01:13 网站建设 项目流程

前言

通知是应用与用户沟通的重要渠道,用于消息提醒、进度展示等。@pura/harmony-utilsNotificationUtil封装了通知发送方法,支持基本文本通知。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解,帮助开发者快速掌握并应用到实际项目中。

一、NotificationUtil基本核心API

NotificationUtil提供了以下基本通知方法:

方法说明返回类型使用场景
publish(title, text)发送基本通知void消息提醒
publishWithId(id, title, text)发送带ID通知void可更新通知
cancel(id)取消通知void清除通知
cancelAll()取消全部通知void全量清除

1.1 核心特性

  • 简洁易用:封装复杂API为一行调用,降低使用门槛
  • 类型安全:完整的TypeScript类型定义,编译期即可发现错误
  • 异常处理:内置异常捕获机制,避免运行时崩溃
  • ID管理:支持通知ID,可更新和取消特定通知

1.2 通知类型对照

类型方法特点适用场景
基本通知publish简单文本普通消息
带ID通知publishWithId可更新/取消下载进度

二、完整使用步骤

2.1 安装依赖

ohpminstall@pura/harmony-utils

2.2 发送基本通知

import{NotificationUtil}from'@pura/harmony-utils';Button('发送基本通知').width('100%').onClick(()=>{try{NotificationUtil.publish('新消息','您有一条未读消息');this.result='通知已发送 🔔';}catch(e){this.result='异常: '+e;}})

2.3 发送带ID通知

Button('发送带ID通知').width('100%').onClick(()=>{try{NotificationUtil.publishWithId(1001,'下载通知','文件下载中...');this.result='通知已发送 🔔\nID: 1001\n可用于后续更新或取消';}catch(e){this.result='异常: '+e;}})

2.4 取消通知

Button('取消通知').width('100%').onClick(()=>{try{NotificationUtil.cancel(1001);this.result='通知已取消 ✅';}catch(e){this.result='异常: '+e;}})

三、完整页面示例

import{NotificationUtil}from'@pura/harmony-utils';@Entry@Componentstruct NotifBasicDemo{@Stateresult:string='';build(){Column({space:12}){Button('发送通知').width('100%').onClick(()=>{try{NotificationUtil.publish('提示','操作完成');this.result='通知已发送';}catch(e){this.result='异常: '+e;}});Button('取消全部').width('100%').onClick(()=>{NotificationUtil.cancelAll();this.result='已取消全部通知';});Text(this.result).fontSize(14).fontColor('#333333')}.padding(16)}}

四、进阶用法

4.1 下载进度通知

import{NotificationUtil}from'@pura/harmony-utils';constDOWNLOAD_NOTIF_ID=2001;functionupdateDownloadProgress(progress:number):void{NotificationUtil.publishWithId(DOWNLOAD_NOTIF_ID,'下载中',`进度:${progress}%`);}functionfinishDownload():void{NotificationUtil.publishWithId(DOWNLOAD_NOTIF_ID,'下载完成','文件已保存');}

4.2 通知管理器

classNotificationManager{privatestaticcounter=3000;staticsend(title:string,text:string):number{letid=NotificationManager.counter++;NotificationUtil.publishWithId(id,title,text);returnid;}staticcancelById(id:number):void{NotificationUtil.cancel(id);}}

五、注意事项

  1. 权限要求:发送通知需要通知权限
  2. 通知渠道:部分系统需要创建通知渠道
  3. 频率限制:避免短时间内发送大量通知
  4. 初始化依赖:使用前需确保AppUtil.init()已调用
  5. 用户设置:用户可能关闭应用通知

六、常见问题

Q1: 通知发送后看不到?

检查通知权限是否已授予,以及系统通知设置是否开启。

Q2: 带ID通知如何更新?

使用相同ID再次调用publishWithId即可更新通知内容。

Q3: cancel()和cancelAll()有什么区别?

cancel()取消指定ID的通知,cancelAll()取消所有通知。

Q4: 通知可以点击跳转吗?

基本通知不支持点击跳转,需要使用WantAgent配置点击行为。


总结

NotificationUtil的基本通知方法为应用消息提醒提供了便捷支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以利用通知功能及时向用户传递重要信息。

本文基于@pura/harmony-utils工具库,更多功能请参考官方文档与后续系列文章。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询