背景
HarmonyOS 論壇中有研發(fā)人員求助,反饋通知沒有沒有聲音,因此在真機上驗證了一下,果不其然,沒有通知的提示音,后來解決辦法也非常簡單,在手機設置應用中,將可以打開的通知提示統(tǒng)統(tǒng)改為鈴聲。
問題是解決了,但有必要分享一下HarmonyOS中的通知問題
實踐總結
- slotType的設置,一定要放在 NotificationRequest 結構體中,使用NotificationManager.addSlot 這個函數(shù)是不起作用的
- NOTIFICATION_CONTENT_PICTURE 這個類型的通知,并不會展示圖片
- NOTIFICATION_CONTENT_CONVERSATION 這個類型其實是不支持的
- 官方指導 圖片類型 通知樣例參數(shù)在 HarmonyOS SDK API 9上邊使用錯誤
錯誤參數(shù):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 (會話類型)
- 進度條類型 (個人觀點:這個不是一個類型,僅僅是基于基礎通知類型從而實現(xiàn)的一個功能)
注意: NOTIFICATION_CONTENT_CONVERSATION 在SDK中出現(xiàn)了,官方指導中沒有說明
樣式說明
NOTIFICATION_CONTENT_BASIC_TEXT(普通文本類型)
NOTIFICATION_CONTENT_LONG_TEXT (長文本類型)
- 默認狀態(tài)
- 展開狀態(tài)
NOTIFICATION_CONTENT_MULTILINE (多行文本類型)
默認狀態(tài)
展開狀態(tài)
NOTIFICATION_CONTENT_PICTURE (圖片類型)
官網(wǎng)指導的樣子
進度條通知
- 準備下載
- 下載中
- 下載完成
- 下載失敗
SlotType
這個屬性功能真正使用時間,是今天才開始。
這個屬性功能,根據(jù)官方指導,有兩種設置方式
第一種
let notificationRequest = {
id: 1, //可以按照自己應用實際的情況,生成其它數(shù)字
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 具體功能現(xiàn)象
根據(jù)第1種實現(xiàn)方式,如果沒有slotType這個字段,默認值其實是其它類型,在代碼層面沒有表現(xiàn)出來,但是通過用戶設置交互層面,可以看到表象
場景設定
"普通文本", "長文本", "多行類型" 統(tǒng)一指定slotType為NotificationManager.SlotType.SOCIAL_COMMUNICATION
“帶圖片類型” 不設置slotType
真機場景查看
設置 -> 通知和狀態(tài)欄 -> 選擇自己的應用(實踐應用:HarmonyLearn)-> 找一下有沒有類別項,如果沒有,可以根據(jù)本實踐主頁面進一下相關操作
實踐主頁樣式
驗證過程
- 點擊“帶圖片類型”, 按照“真機場景查看” 的步驟操作,應該可以看到 “類別” 菜單了,但子菜單只有一個 “社交通訊”
- 點擊"普通文本" / "長文本" / "多行類型", 按照“真機場景查看” 的步驟操作,應該可以看到 “類別” 菜單中出現(xiàn)了一個“其他”子菜單
鈴聲行為設定
通過“驗證過程”,已可以了解到,如果要設置通知鈴聲,可以進入“社交通訊” & “其它” 里邊去詳細設置
橫幅樣式
在閱讀官方指導過程中,“橫幅通知” 這個詞應該見到過,它的具體表現(xiàn)是什么樣子呢?
效果圖
如何設置
設置 -> 通知和狀態(tài)欄 -> 選擇自己的應用(實踐應用:HarmonyLearn -> 提醒方式 -> "橫幅通知"
審核編輯 黃宇
-
HarmonyOS
+關注
關注
79文章
1975瀏覽量
30201 -
鴻蒙OS
+關注
關注
0文章
188瀏覽量
4396
發(fā)布評論請先 登錄
相關推薦
評論