HarmonyOS Next鸿蒙开发:通知提醒

404 阅读2分钟

一、Notification Kit简介

Notification Kit(用户通知服务)为开发者提供本地通知发布通道,开发者可借助Notification Kit将应用产生的通知直接在客户端本地推送给用户,本地通知根据通知类型及发布场景会产生对应的铃声、震动、横幅、锁屏、息屏、通知栏提醒和显示。

应用可以通过通知接口发送通知消息,终端用户可以通过通知栏查看通知内容,也可以点击通知来打开应用。 通知使用的的常见场景: 显示当前正在进行的事件,比如、上传下载提醒 聊天消息提醒 显示应用推送消息

image.png

注: 如果是模拟器调试时,需要开启通知权限 打开系统设置-

image.png

打开通知和状态栏

image.png

找到自己的应用

image.png

允许通知即可

image.png

二、能力范围

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%')
  }
}