溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

HTML5如何實(shí)現(xiàn)Notification API桌面通知功能

發(fā)布時(shí)間:2021-08-26 15:25:59 來源:億速云 閱讀:210 作者:小新 欄目:web開發(fā)

這篇文章主要為大家展示了“HTML5如何實(shí)現(xiàn)Notification API桌面通知功能 ”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“HTML5如何實(shí)現(xiàn)Notification API桌面通知功能 ”這篇文章吧。

為什么需要HTML5的桌面通知
傳統(tǒng)的桌面通知可以寫一個(gè)div放到頁面右下角自動(dòng)彈出來,并通過輪詢等等其他方式去獲取消息并推送給用戶。這種方式有個(gè)弊端就是:當(dāng)我在使用京東 進(jìn)行購物的時(shí)候,我是不知道人人網(wǎng)有消息推送過來給我的,而必須要等我把當(dāng)前頁面切到人人網(wǎng)才知道有消息推送了。這種方式的消息推送它是基于頁面存活的, 但是我們需要這么一種策略:無論你在看哪個(gè)頁面,只要有消息都應(yīng)該能推送給我看到,這就是webkitNotification要解決的問題。 Notification生成的消息不依附于某個(gè)頁面,僅僅依附于瀏覽器。
一個(gè)桌面通知生成的正常流程
我們先來看看一個(gè)桌面通知是如何生成的:
1.檢查瀏覽器是否支持Notification
2.檢查瀏覽器的通知權(quán)限(是否允許通知)
3.若權(quán)限不夠則獲取瀏覽器的通知權(quán)限
4.創(chuàng)建消息通知
5.展示消息通知
NOTE:關(guān)于第一點(diǎn)的說明需要做一些說明,Notification目前還沒有標(biāo)準(zhǔn)化,所以目前只支持chrome19+和safari6+;網(wǎng)上有資料顯示Firefox26+也支持,但是我拿我的Firefox27檢測的結(jié)果是無法支持。
html5的桌面通知我相信大家并不陌生。常見的有網(wǎng)頁版的微信等應(yīng)用,需要設(shè)置桌面通知功能才可以使用。
用客戶端程序?qū)崿F(xiàn)這樣的功能并不難。而傳統(tǒng)的網(wǎng)頁版的桌面通知可以寫一個(gè)div放到頁面右下角自動(dòng)彈出來,并通過輪詢等等其他方式去獲取消息并推送給用戶。這種方式有個(gè)弊端就是:當(dāng)我在使用淘寶進(jìn)行購物的時(shí)候,我是不知道微博有消息推送過來給我的,而必須要等我把當(dāng)前頁面切到新浪微博才知道有消息推送了。這種方式的消息推送它是基于頁面存活的, 但是我們需要這么一種策略:無論你在看哪個(gè)頁面,只要有消息都應(yīng)該能推送給我看到,這就是webkitNotification要解決的問題。
Notification目前還沒有標(biāo)準(zhǔn)化,所以你在w3cschool等網(wǎng)站上是學(xué)習(xí)不到的。但是目前主流瀏覽器大部分都支持Notification。關(guān)于html5的桌面通知效果圖如下:

HTML5如何實(shí)現(xiàn)Notification API桌面通知功能

 
代碼如下:

<!DOCTYPE html>    
<html>    
<head>    
<meta charset="utf-8">    
<title>html5桌面通知</title>    
</head>    
<body>    
<input type="button" value="開啟桌面通知" onclick="showNotice();">    
<script>    
function showNotice(){    
Notification.requestPermission(function(status){    
//status默認(rèn)值'default'等同于拒絕 'denied' 意味著用戶不想要通知 'granted' 意味著用戶同意啟用通知    
if("granted" != status)    
return;    
var notify = new Notification("消息",{    
dir:'auto',    
lang:'zh-CN',    
tag:'sds',//實(shí)例化的notification的id    
//icon 支持ico、png、jpg、jpeg格式    
icon:'http://www.xttblog.com/icons/favicon.ico',//通知的縮略圖    
body:'html5桌面通知' //通知的具體內(nèi)容    
});    
notify.onclick=function(){    
//如果通知消息被點(diǎn)擊,通知窗口將被激活    
window.focus();    
}    
});    
}    
</script>    
</body>    
</html>

以上是“HTML5如何實(shí)現(xiàn)Notification API桌面通知功能 ”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI