背景
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
+關注
關注
80文章
2153瀏覽量
36037 -
鴻蒙OS
+關注
關注
0文章
193瀏覽量
5479
發布評論請先 登錄
以龍企招為例,淺談鴻蒙應用開發者激勵計劃 2025 參與心得
【匯思博SEEK100開發板試用體驗】在開發板鴻蒙OS搭建QT開發環境
鴻蒙5開發寶藏案例分享---一多開發實例(音樂)
鴻蒙5開發寶藏案例分享---一多開發實例(游戲)
鴻蒙5開發案例分享揭秘---一多開發實例(商務辦公)
鴻蒙5開發寶藏案例分享---一多開發實例(地圖導航)
鴻蒙5開發寶藏案例分享---一多開發實例(旅行訂票)
鴻蒙5開發寶藏案例分享---一多開發實例(購物比價)
鴻蒙5開發寶藏案例分享---一多開發實例(社區評論)
鴻蒙5開發寶藏案例分享---一多開發實例(長視頻)
2025開源鴻蒙開發者大會圓滿落幕
鴻蒙北向開發OpenHarmony5.0 DevEco Studio開發工具安裝與配置
鴻蒙OS開發實例:【通知消息】
評論