一、Notification Kit简介
Notification Kit(用户通知服务)为开发者提供本地通知发布通道,开发者可借助Notification Kit将应用产生的通知直接在客户端本地推送给用户,本地通知根据通知类型及发布场景会产生对应的铃声、震动、横幅、锁屏、息屏、通知栏提醒和显示。
应用可以通过通知接口发送通知消息,终端用户可以通过通知栏查看通知内容,也可以点击通知来打开应用。 通知使用的的常见场景: 显示当前正在进行的事件,比如、上传下载提醒 聊天消息提醒 显示应用推送消息
注: 如果是模拟器调试时,需要开启通知权限 打开系统设置-
打开通知和状态栏
找到自己的应用
允许通知即可
二、能力范围
Notification Kit支持的能力主要包括: 发布文本、进度条等类型通知。 携带或更新应用通知数字角标。 取消曾经发布的某条或全部通知。 查询已发布的通知列表。 查询应用自身通知开关状态。 应用通知用户的能力默认关闭,开发者可拉起授权框,请求用户授权发布通知。
三、通知样式也是多种
有文本、多行文本、通知大图表,通知角图、进度条
四、通知有约束限制
单个应用已发布的通知在通知中心等系统入口的留存数量有限(当前规格最多24条)。 通知的长度不能超过200KB(跨进程序列化大小限制)。 系统所有应用发布新通知的频次累计不能超过每秒10条,更新通知的频次累计不能超过每秒20条。
五、开发步骤
导入模块
import { notificationManager } from '@kit.NotificationKit';
import { BusinessError } from '@kit.BasicServicesKit';
完整代码:
@Entry
@Component
struct NotificationPage {
publishNotification() {
// 通知Request对象
let notificationRequest: notificationManager.NotificationRequest = {
id: 1,
content: {
notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
normal: {
title: "这是一个通知栏",
text: "当前事件....",
additionalText: "test_additionalText"
}
}
};
notificationManager.publish(notificationRequest).then(() => {
console.info("publish success");
}).catch((err: BusinessError) => {
console.error(`publish fail: ${JSON.stringify(err)}`);
});
}
build() {
Column() {
Button('发送通知')
.onClick(() => {
this.publishNotification()
})
}
.width('100%')
}
}