中国总决赛
全球总决赛
学习进度
完成
省赛
能力分类
主要子系统
能力模型
基本接口请求通知授权,发送默认样式通知,设置通知点击跳转到应用

通知


用户通知服务(考点)!!!!!!

HarmonyOS通过ANS(Advanced Notification Service,通知系统服务)对通知类型的消息进行管理,支持多种通知类型,如基础类型通知、进度条类型通知。
 

Notification Kit(用户通知服务)

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

通知业务流程(考点)

通知业务流程由通知子系统、通知发送端、通知订阅端组成。一条通知从通知发送端产生,通过IPC通信发送到通知子系统,再由通知子系统分发给通知订阅端。
  • 通知发送端:可以是三方应用或系统应用。开发者重点关注。
  • 通知订阅端:只能为系统应用,比如通知中心。通知中心默认会订阅手机上所有应用对当前用户的通知。开发者无需关注。(考点)
  • 通知发送端调用AnsNotification校验参数合法性。(考点)
notion image
 

能力范围(考点)

  • 发布文本、进度条等类型通知。
  • 携带或更新应用通知数字角标。
  • 取消曾经发布的某条或全部通知。
  • 查询已发布的通知列表。
  • 查询应用自身通知开关状态。
  • 应用通知用户的能力默认关闭,开发者可拉起授权框,请求用户授权发布通知。
 

发布通知(考点)

通知发布接口如下表所示,不同发布类型通知由NotificationRequest的字段携带不同的信息。
  • 导入通知模块
    • import notificationManager from '@ohos.notificationManager';
接口名
描述
publish(request: NotificationRequest, callback: AsyncCallback<void>): void
发布通知。
cancel(id: number, label: string, callback: AsyncCallback<void>): void
取消指定的通知。
cancelAll(callback: AsyncCallback<void>): void;
取消所有该应用发布的通知。
notion image
 

行为意图(考点)

WantAgent提供了封装行为意图的能力,这里所说的行为意图主要是指拉起指定的应用组件及发布公共事件等能力。
HarmonyOS支持以通知的形式,将WantAgent从发布方传递至接收方,从而在接收方触发WantAgent中指定的意图。例如,在通知消息的发布者发布通知时,通常期望用户可以通过通知栏点击拉起目标应用组件。为了达成这一目标,开发者可以将WantAgent封装至通知消息中,当系统接收到WantAgent后,在用户点击通知栏时触发WantAgent的意图,从而拉起目标应用组件。
为通知添加行为意图的实现方式如下图所示:发布通知的应用向应用组件管理服务AMS(Ability Manager Service)申请WantAgent,然后随其他通知信息一起发送给桌面,当用户在桌面通知栏上点击通知时,触发WantAgent动作。
  • import notificationManager from '@ohos.notificationManager';
  • import wantAgent from '@ohos.app.ability.wantAgent';
notion image
 

约束限制(考点)

  • 单个应用已发布的通知在通知中心等系统入口的留存数量有限(当前规格最多24条)。(考点)
  • 通知的长度不能超过200KB(跨进程序列化大小限制)。
  • 系统所有应用发布新通知的频次累计不能超过每秒10条更新通知的频次累计不能超过每秒20条
 

相关Kit(考点)

  • Notification Kit创建的通知会即时显示在通知中心等系统入口,如果开发者希望在应用退到后台或进程终止后仍然有一些提醒用户的定时类通知,例如购物类应用抢购提醒等,可通过BackGroundTask Kit创建,目前支持基于倒计时、日历、闹钟等类型的通知提醒功能。
  • 开发者可通过Ability Kit设置用户点击通知后的行为意图。(考点)
  • 开发者可通过Push Kit远程推送用户通知到本地。
 

请求通知授权

接口名
描述
isNotificationEnabled():Promise<boolean>
查询通知是否授权。
requestEnableNotification(context: UIAbilityContext): Promise<void>
请求发送通知的许可,第一次调用会弹窗让用户选择。(后续再次调用时,则不再弹窗)
 

管理通知角标

当角标设定个数取值0时,表示清除角标。取值大于99时,通知角标将显示99+。
  • 增加角标数,支持如下两种方法:
    • 发布通知时,在NotificationRequest的badgeNumber字段里携带,桌面收到通知后,在原角标数上累加、呈现。
    • 调用接口setBadgeNumber()设置,桌面按设置的角标数呈现。
  • 减少角标数,目前仅支持通过setBadgeNumber()设置。
    • 接口名
      描述
      setBadgeNumber(badgeNumber: number, callback: AsyncCallback<void>): void
      设置角标个数。
 

管理通知渠道(考点)

接口名
描述
addSlot(type: SlotType): Promise<void>
创建指定类型的通知渠道。
getSlot(slotType: SlotType): Promise<NotificationSlot>
获取一个指定类型的通知渠道。
removeSlot(slotType: SlotType): Promise<void>
删除此应用程序指定类型的通知渠道。
 

例题


7、下方哪个是导入 NotificationManager 模块?
A. import wantAgent from ‘@ohos.app.ability.wantAgent’;
B. import notificationManager from ‘@ohos.notificationManager’;
C. import image from ‘@ohos.multimedia.image’;
D. import Base from ‘@ohos.base’;
 
16、通知订阅端属于什么应用?
A. 普通应用
B. 第三方应用
C. 系统应用
D. 远程服务应用
 
17、OpenHarmony 中,取消所有已发布的通知调用哪个接口?
A. cancel
B. cancelAll
C. clear
D. clearAll
 
5.[单选题]
OpenHarmony中,获取此应用程序的所有通知渠道调用哪个接口?
A: fetchAllSlot
B: fetchSlots
C: getSlots
D: getAllSlot
正确答案:C
答案解析:getSlot(slotType: SlotType): Promise<NotificationSlot>获取一个指定类型的通知渠道。
 
6.[单选题]
如果需要设置用户点击通知后的行为意图,可以采用哪个框架实现?
A: NotificationTask Kit
B: BackGroundTask Kit
C: PushAction Kit
D: Ability Kit
正确答案:D
答案解析:开发者可通过Ability Kit设置用户点击通知后的行为意图。
 
20.[单选题]
在通知中心等系统入口,单个应用已发布的通知的留存数量上限是多少条?
A: 25.0
B: 24.0
C: 30.0
D: 35.0
正确答案:B
答案解析:暂无
 
24.[单选题]
OpenHarmony中,发布通知调用哪个接口?
A: publish
B: send
C: addNotification
D: sendNotification
正确答案:A
答案解析:publish(request: NotificationRequest, callback: AsyncCallback<void>): void——发布通知。
 
4.[多选题]
Notification Kit (用户通知服务)能力范围有哪些?
A:支持应用发布不同基础类型通知
B:支持应用在发布通知时指定不同的通知渠道类型,以及管理通知发布渠道类型,比如新增或删除渠道、查询渠道使能状态等
C:支持应用管理自己发布的通知,比如取消已发布的通知、查询所有已发布通知等操作
D:支持应用请求通知授权.查询通知授权状态
正确答案:ABCD
答案解析:暂无
 
  1. 通知业务流程由通知子系统、通知发送端、通知订阅端组成。
正确
错误
 
  1. 应用调用 requestEnableNotification() 方法开启通知开关。
正确
错误
 
3.[判断题]
通知被查看后,角标上显示的未读通知个数需要减少,没有未读通知时,不显示角标。
A:错误
B:正确
正确答案:B
答案解析:暂无。
 
18.[判断题]
可通过Ability Kit设置用户点击通知后的行为意图。
A:错误
B:正确
正确答案:B
答案解析:暂无
 
2.[判断题]
通知发送端调用AnsNotification校验参数合法性。
A:错误
B:正确
正确答案:B
答案解析:暂无
 
  1. WantAgent 提供了封装行为意图的能力,该行为意图是指拉起指定的应用组件及发布公共事件等能力。
正确
Loading...
Koreyoshi
Koreyoshi
一个无可救药的乐观主义者
Latest posts
软件测试:集成测试
2025-3-25
软件测试:控制流测试
2025-3-25
软件测试:系统测试
2025-3-25
软件测试:数据流测试
2025-3-25
软件测试:测试驱动开发
2025-3-25
软件工程:面向对象的概念和记号
2025-3-24
Announcement
🎉写给自己的2025心愿🎉
保研
国奖
完善博客
学一门乐器
发表一篇论文
拍摄人生照片
去3个城市旅游
专业课知识视频
拍摄毕业季视频
----- 2025 ------
👏希望我们一起变好👏