0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙OS开发实例:【通知消息】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-04-01 15:34 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

背景

HarmonyOS 论坛中有研发人员求助,反馈通知没有没有声音,因此在真机上验证了一下,果不其然,没有通知的提示音,后来解决办法也非常简单,在手机设置应用中,将可以打开的通知提示统统改为铃声。

问题是解决了,但有必要分享一下HarmonyOS中的通知问题

实践总结

  1. slotType的设置,一定要放在 NotificationRequest 结构体中,使用NotificationManager.addSlot 这个函数是不起作用的
  2. NOTIFICATION_CONTENT_PICTURE 这个类型的通知,并不会展示图片
  3. NOTIFICATION_CONTENT_CONVERSATION 这个类型其实是不支持的
  4. 官方指导 图片类型 通知样例参数在 HarmonyOS SDK API 9上边使用错误

错误参数:pixelFormat:"ARGB_8888"

let opts = { editable:true, pixelFormat:"ARGB_8888", size: {height:100, width : 150}};
复制

更正:pixelFormat: image.PixelMapFormat.RGBA_8888, 即 枚举类型

let opts = { editable:true, pixelFormat: image.PixelMapFormat.RGBA_8888, size: {height:100, width : 150}};
复制

准备条件

  1. HarmonyOS 4.0
  2. HarmonyOS SDK API 9

实践功能介绍

备注: 参照[指导][gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

搜狗高速浏览器截图20240326151547.png

  1. NOTIFICATION_CONTENT_BASIC_TEXT(普通文本类型)
  2. NOTIFICATION_CONTENT_LONG_TEXT (长文本类型)
  3. NOTIFICATION_CONTENT_MULTILINE (多行文本类型)
  4. NOTIFICATION_CONTENT_PICTURE (图片类型)
  5. NOTIFICATION_CONTENT_CONVERSATION (会话类型)
  6. 进度条类型 (个人观点:这个不是一个类型,仅仅是基于基础通知类型从而实现的一个功能)

注意: NOTIFICATION_CONTENT_CONVERSATION 在SDK中出现了,官方指导中没有说明

样式说明

NOTIFICATION_CONTENT_BASIC_TEXT(普通文本类型)

Screenshot_20240111003154588.png

NOTIFICATION_CONTENT_LONG_TEXT (长文本类型)

  • 默认状态

Screenshot_20240111003205326.png

  • 展开状态

Screenshot_20240111003208673.png

NOTIFICATION_CONTENT_MULTILINE (多行文本类型)

默认状态

Screenshot_20240111003225488.png

展开状态

Screenshot_20240111003227907.png

NOTIFICATION_CONTENT_PICTURE (图片类型)

Screenshot_20240111003216907.png

官网指导的样子

0000000000011111111.20231227152829.81254619190493111932640333584744.png

进度条通知

  • 准备下载

Screenshot_20240110233106318.png

  • 下载中

Screenshot_20240110232303801.png

  • 下载完成

Screenshot_20240110232328702.png

  • 下载失败

Screenshot_20240110232335533.png

SlotType

这个属性功能真正使用时间,是今天才开始。

这个属性功能,根据官方指导,有两种设置方式

第一种

let notificationRequest = {
   id: 1, //可以按照自己应用实际的情况,生成其它数字
   slotType: NotificationManager.SlotType.SOCIAL_COMMUNICATION //可以选择其它类型
}

NotificationManager.publish(notificationRequest)
复制

第二种

let notificationRequest = {
  ......
}

function addSlotCallBack(err) {
  if (err) {
    console.info("addSlot failed " + JSON.stringify(err));
  } else {
    console.info("addSlot success");
  }
}
NotificationManager.addSlot(NotificationManager.SlotType.SOCIAL_COMMUNICATION, addSlotCallBack);

NotificationManager.publish(notificationRequest)
复制

其中第2种方式,实际是不生效的,虽然可以在控制台看到日志输出

SlotType 具体功能现象

根据第1种实现方式,如果没有slotType这个字段,默认值其实是其它类型,在代码层面没有表现出来,但是通过用户设置交互层面,可以看到表象

场景设定

"普通文本", "长文本", "多行类型" 统一指定slotType为NotificationManager.SlotType.SOCIAL_COMMUNICATION

“带图片类型” 不设置slotType

真机场景查看

设置 -> 通知和状态栏 -> 选择自己的应用(实践应用:HarmonyLearn)-> 找一下有没有类别项,如果没有,可以根据本实践主页面进一下相关操作

实践主页样式

Screenshot_20240110231925234.png

验证过程

  1. 点击“带图片类型”, 按照“真机场景查看” 的步骤操作,应该可以看到 “类别” 菜单了,但子菜单只有一个 “社交通讯”

Screenshot_20240110212600964.png

  1. 点击"普通文本" / "长文本" / "多行类型", 按照“真机场景查看” 的步骤操作,应该可以看到 “类别” 菜单中出现了一个“其他”子菜单

Screenshot_20240110211624413.png

铃声行为设定

通过“验证过程”,已可以了解到,如果要设置通知铃声,可以进入“社交通讯” & “其它” 里边去详细设置

Screenshot_20240110212856214.pngScreenshot_20240110211933266.png

横幅样式

在阅读官方指导过程中,“横幅通知” 这个词应该见到过,它的具体表现是什么样子呢?

效果图

Screenshot_20240110212832714.png

如何设置

设置 -> 通知和状态栏 -> 选择自己的应用(实践应用:HarmonyLearn -> 提醒方式 -> "横幅通知"

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HarmonyOS
    +关注

    关注

    80

    文章

    2146

    浏览量

    35537
  • 鸿蒙OS
    +关注

    关注

    0

    文章

    192

    浏览量

    5301
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    想体验鸿蒙生态,该怎么获取鸿蒙开发板?有哪些途径?

    如何快速上手体验鸿蒙生态? 想体验鸿蒙生态,该怎么获取鸿蒙开发板?有哪些途径?
    发表于 11-29 08:40

    如何申请鸿蒙开发板?想体验鸿蒙生态。

    如何申请鸿蒙开发板?想体验鸿蒙生态。
    发表于 11-29 08:34

    【汇思博SEEK100开发板试用体验】在开发鸿蒙OS搭建QT开发环境

    功能或者网络通信失败等,检查代码中对相关功能的实现逻辑,是否正确调用了鸿蒙系统提供的 API 以及 Qt 的相关模块。例如,在调用开发板摄像头功能时,检查是否获取到了正确的摄像头设备实例,并且是否按照规范进行了设备的初始化和操作
    发表于 08-24 18:34

    【HarmonyOS 5】金融应用开发鸿蒙组件实践

    【HarmonyOS 5】金融应用开发鸿蒙组件实践 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财#
    的头像 发表于 07-11 18:20 743次阅读
    【HarmonyOS 5】金融应用<b class='flag-5'>开发</b><b class='flag-5'>鸿蒙</b>组件实践

    鸿蒙5开发宝藏案例分享---一多开发实例(音乐)

    各位开发者小伙伴们好呀!今天咱们来点硬核干货!最近在鸿蒙文档中心挖到一座“金矿”——官方竟然暗藏了100+实战案例,从分布式架构到交互动效优化应有尽有!这些案例不仅藏着华为工程师的私房技巧,还直接
    的头像 发表于 06-30 11:54 615次阅读

    鸿蒙5开发宝藏案例分享---一多开发实例(游戏)

    ?【开发者必看】鸿蒙隐藏宝箱大公开!这些实战案例让你的开发效率翻倍! 哈喽各位开发者小伙伴!今天要和大家分享一个让我拍大腿的发现——原来鸿蒙
    发表于 06-03 18:22

    鸿蒙5开发案例分享揭秘---一多开发实例(商务办公)

    ?【鸿蒙开发宝藏案例大揭秘】原来官方文档里藏了这么多好东西! 大家好呀~最近在肝鸿蒙项目时意外扒出了官方文档里的\"藏宝库\"!原来那些让人头秃的跨端适配难题,官方早就准备好
    发表于 06-03 16:24

    鸿蒙5开发宝藏案例分享---一多开发实例(地图导航)

    案例!最近在肝鸿蒙项目时意外发现了这个地图导航的\"一多\"开发实例,简直像发现新大陆!这就带大家沉浸式体验这个超实用的开发模板~ ? 先划重点:这个案例完美演示了如何用一套代码搞定
    发表于 06-03 16:17

    鸿蒙5开发宝藏案例分享---一多开发实例(旅行订票)

    ? 鸿蒙开发宝藏大发现!一多开发实战案例解析(旅行订票篇) 大家好!今天在翻鸿蒙开发者文档时,意外发现了官方藏着一整片\"案例绿洲\"!尤其
    发表于 06-03 16:16

    鸿蒙5开发宝藏案例分享---一多开发实例(购物比价)

    鸿蒙开发宝藏案例大公开!】手把手教你用\"一多\"能力打造跨端购物比价App 小伙伴们好呀!今天要和大家分享一个鸿蒙开发的隐藏宝典——官方购物比价应用
    发表于 06-03 16:07

    鸿蒙5开发宝藏案例分享---一多开发实例(社区评论)

    应用” 的一多开发实例,看完直呼“原来还能这样玩?!” ? 必须整理出来和大家唠唠,顺便带大家手把手拆解几个核心案例! ?** 一多开发是啥?一句话总结:** 一次开发,自动适配手机、
    发表于 06-03 16:03

    鸿蒙5开发宝藏案例分享---一多开发实例(长视频)

    【?鸿蒙开发宝藏案例大起底!原来官方藏了这么多干货!】 大家好呀~最近在折腾鸿蒙应用开发的时候,意外发现了官方文档里藏着一堆超实用的开发案例
    发表于 06-03 15:58

    2025开源鸿蒙开发者大会圆满落幕

    近日,开源鸿蒙开发者大会2025(OHDC.2025,简称“大会”)在深圳隆重开幕。大会正式发布了开源鸿蒙5.1 Release版本,举行了开源鸿蒙应用技术组件共建启动、开源
    的头像 发表于 05-26 17:03 1118次阅读

    鸿蒙北向开发OpenHarmony5.0 DevEco Studio开发工具安装与配置

    本文介绍OpenHarmony5.0 DevEco Studio开发工具安装与配置,鸿蒙北向开发入门必备!由触觉智能Purple Pi OH鸿蒙开发
    的头像 发表于 03-28 18:05 1312次阅读
    <b class='flag-5'>鸿蒙</b>北向<b class='flag-5'>开发</b>OpenHarmony5.0 DevEco Studio<b class='flag-5'>开发</b>工具安装与配置

    HarmonyOS 应用开发赋能套件:鸿蒙原生应用开发的 “神助攻”

    随着鸿蒙生态的快速发展,越来越多的开发者投身于鸿蒙原生应用的开发中。然而,在学习鸿蒙原生应用开发
    发表于 02-17 16:37