背景
HarmonyOS 论坛中有研发人员求助,反馈通知没有没有声音,因此在真机上验证了一下,果不其然,没有通知的提示音,后来解决办法也非常简单,在手机设置应用中,将可以打开的通知提示统统改为铃声。
问题是解决了,但有必要分享一下HarmonyOS中的通知问题
实践总结
- slotType的设置,一定要放在 NotificationRequest 结构体中,使用NotificationManager.addSlot 这个函数是不起作用的
- NOTIFICATION_CONTENT_PICTURE 这个类型的通知,并不会展示图片
- NOTIFICATION_CONTENT_CONVERSATION 这个类型其实是不支持的
- 官方指导 图片类型 通知样例参数在 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}};
复制
准备条件
- HarmonyOS 4.0
- HarmonyOS SDK API 9
实践功能介绍
备注: 参照[指导][gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
- NOTIFICATION_CONTENT_BASIC_TEXT(普通文本类型)
- NOTIFICATION_CONTENT_LONG_TEXT (长文本类型)
- NOTIFICATION_CONTENT_MULTILINE (多行文本类型)
- NOTIFICATION_CONTENT_PICTURE (图片类型)
- NOTIFICATION_CONTENT_CONVERSATION (会话类型)
- 进度条类型 (个人观点:这个不是一个类型,仅仅是基于基础通知类型从而实现的一个功能)
注意: NOTIFICATION_CONTENT_CONVERSATION 在SDK中出现了,官方指导中没有说明
样式说明
NOTIFICATION_CONTENT_BASIC_TEXT(普通文本类型)
NOTIFICATION_CONTENT_LONG_TEXT (长文本类型)
- 默认状态
- 展开状态
NOTIFICATION_CONTENT_MULTILINE (多行文本类型)
默认状态
展开状态
NOTIFICATION_CONTENT_PICTURE (图片类型)
官网指导的样子
进度条通知
- 准备下载
- 下载中
- 下载完成
- 下载失败
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)-> 找一下有没有类别项,如果没有,可以根据本实践主页面进一下相关操作
实践主页样式
验证过程
- 点击“带图片类型”, 按照“真机场景查看” 的步骤操作,应该可以看到 “类别” 菜单了,但子菜单只有一个 “社交通讯”
- 点击"普通文本" / "长文本" / "多行类型", 按照“真机场景查看” 的步骤操作,应该可以看到 “类别” 菜单中出现了一个“其他”子菜单
铃声行为设定
通过“验证过程”,已可以了解到,如果要设置通知铃声,可以进入“社交通讯” & “其它” 里边去详细设置
横幅样式
在阅读官方指导过程中,“横幅通知” 这个词应该见到过,它的具体表现是什么样子呢?
效果图
如何设置
设置 -> 通知和状态栏 -> 选择自己的应用(实践应用:HarmonyLearn -> 提醒方式 -> "横幅通知"
审核编辑 黄宇
-
HarmonyOS
+关注
关注
79文章
1964浏览量
29943 -
鸿蒙OS
+关注
关注
0文章
188浏览量
4351
发布评论请先 登录
相关推荐
评论