自己平時喜歡看籃球視頻,經(jīng)常瀏覽騰訊體育,不知道有沒有和我一樣的同學(xué)麻削,遇到過一個提示,問是否接受消息通知春弥,之前也看過H5程序設(shè)計因為是比較早的一本書呛哟,當時上面提過但是說的兼容性并不怎么樣,也就沒有多去查看匿沛,也是這樣一個契機讓我查看了Notification的兼容性扫责,原來已經(jīng)達到了PC端幾乎可以實現(xiàn)了,也是證明H5越來越強大了俺祠,很多底層的東西都可以逐步開始完善和實現(xiàn)了公给。
Notification對象使用來為用戶設(shè)置和顯示桌面通知的,用法也是相對比較簡單的,直接實例化Notification對象蜘渣。
var notification ?= new Notification(title,options);
title:顯示通知標題
options:接收一個對象淌铐,是顯示通知的配置
配置包括:
dir:文字的方向,取值為auto蔫缸、ltr腿准、rtl。默認為auto ?ltr表示left to right ?rtl表示right to left
lang:通知的語言拾碌,這個字符串必須在BCP 47 language tag文檔中是有效的吐葱;
body:通知的內(nèi)容
tag:通知的ID,通過此ID可以對通知進行刷新校翔、替換或移除
icon:圖標地址
renotify:布爾值弟跑,新通知出現(xiàn)的時候是否替換之前的。設(shè)置為true表示替換防症,如果tag為空字符串孟辑,那么會throw一個TypeError異常哎甲;
還可以控制聲音、震動等饲嗽,但是有這么一段官方提示說:
不鼓勵開發(fā)者通過圖標炭玫、聲音或振動模式來給最終用戶傳達信息;除非這些信息 是最終用戶可以訪問的貌虾。
更詳細的屬性可以跳轉(zhuǎn)到:w3c-html-ig-zh.github.io/notifications/whatwg/?查看吞加;
和H5的定位相同,要顯示通知尽狠,需要得到用戶的授權(quán)衔憨,API中提供了requestPermission方法來向用戶申請是否顯示通知的權(quán)限:
我們也可以通過Notification.permission來獲取用戶授權(quán)狀態(tài),屬于只讀屬性晚唇;
Notification也提供了事件的監(jiān)聽:
noshow / ondisplay : 在通知顯示的時觸發(fā)巫财;
onclick:在用戶點擊通知時觸發(fā)
onerror:當通知出現(xiàn)錯誤時觸發(fā)
onclose:當用戶關(guān)閉通知時觸發(fā)
在瀏覽器通知顯示如下
簡單了解了Web Notification 我在我github上面更新了我之前做的一個websocket聊天盗似,在聊天的基礎(chǔ)上加入了簡單的消息通知哩陕,github.com/wenlei0617/node-websocket?
現(xiàn)在Firefox 51 for android已經(jīng)支持消息通知了,有興趣的朋友可以下載到手機上來實現(xiàn)這個功能赫舒,感覺很是高大上的悍及。