HTML5 桌面通知:Notification API

前言

Notification API 是 HTML5 新增的桌面通知 API,用于向用戶(hù)顯示通知信息。該通知是脫離瀏覽器的,即使用戶(hù)沒(méi)有停留在當(dāng)前標(biāo)簽頁(yè),甚至最小化了瀏覽器,該通知信息也一樣會(huì)置頂顯示出來(lái)。

用戶(hù)權(quán)限

想要向用戶(hù)顯示通知消息,需要獲取用戶(hù)權(quán)限,而相同的域名只需要獲取一次權(quán)限。只有用戶(hù)允許的權(quán)限下,Notification 才能起到作用,避免某些網(wǎng)站的廣告濫用 Notification 或其它給用戶(hù)造成影響。那么如何知道用戶(hù)到底是允不允許的?
Notification.permission 該屬性用于表明當(dāng)前通知顯示的授權(quán)狀態(tài),可能的值包括:

default :不知道用戶(hù)的選擇,默認(rèn)。
granted :用戶(hù)允許。
denied :用戶(hù)拒絕。

if(Notification.permission === 'granted'){
    console.log('用戶(hù)允許通知');
}else if(Notification.permission === 'denied'){
    console.log('用戶(hù)拒絕通知');
}else{
    console.log('用戶(hù)還沒(méi)選擇,去向用戶(hù)申請(qǐng)權(quán)限吧');
}

推送通知

獲取用戶(hù)授權(quán)之后,就可以推送通知了。

var notification = new Notification(title, options)

參數(shù)如下:

title:通知的標(biāo)題
options:通知的設(shè)置選項(xiàng)(可選)。
body:通知的內(nèi)容。
tag:代表通知的一個(gè)識(shí)別標(biāo)簽,相同tag時(shí)只會(huì)打開(kāi)同一個(gè)通知窗口。
icon:要在通知中顯示的圖標(biāo)的URL。
image:要在通知中顯示的圖像的URL。
data:想要和通知關(guān)聯(lián)的任務(wù)類(lèi)型的數(shù)據(jù)。
requireInteraction:通知保持有效不自動(dòng)關(guān)閉,默認(rèn)為false。

還有一些其他的參數(shù),因?yàn)橛貌涣嘶蛘邲](méi)什么用這里就沒(méi)必要說(shuō)了。

var n = new Notification('狀態(tài)更新提醒',{
    body: '你的朋友圈有3條新?tīng)顟B(tài),快去查看吧',
    tag: 'linxin',
    icon: 'http://blog.gdfengshuo.com/images/avatar.jpg',
    requireInteraction: true
})

關(guān)閉通知

從上面的參數(shù)可以看出,并沒(méi)有一個(gè)參數(shù)用來(lái)配置顯示時(shí)長(zhǎng)的。我想要它 3s 后自動(dòng)關(guān)閉的話,這時(shí)可以調(diào)用 close() 方法來(lái)關(guān)閉通知。

var n = new Notification('狀態(tài)更新提醒',{
    body: '你的朋友圈有3條新?tīng)顟B(tài),快去查看吧'
})

setTimeout(function() {
    n.close();
}, 3000);
本文引自:https://juejin.im/post/59ed37f5f265da431e15eaac 鳴謝作者!如有侵權(quán),請(qǐng)與我聯(lián)系刪除!
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容