亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > HTML > 正文

HTML5中的Web Notification桌面通知功能的實(shí)現(xiàn)方法

2024-08-26 00:21:37
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

有的時(shí)候我們會(huì)在桌面右下角看到這樣的提示:

HTML5,Web,Notification,桌面通知

這種桌面提示是HTML5新增的 Web Push Notifications 技術(shù)。

Web Notifications 技術(shù)使頁(yè)面可以發(fā)出通知,通知將被顯示在頁(yè)面之外的系統(tǒng)層面上。能夠?yàn)橛脩籼峁└玫捏w驗(yàn),即使用戶忙于其他工作時(shí)也可以收到來(lái)自頁(yè)面的消息通知,例如一個(gè)新郵件的提醒,或者一個(gè)在線聊天室收到的消息提醒等等。

PS:除了IE外,各大現(xiàn)代瀏覽器都對(duì)這個(gè)桌面推送有了基本的支持。

開(kāi)始

要?jiǎng)?chuàng)建一個(gè)消息通知,非常簡(jiǎn)單,直接使用 window 對(duì)象下面的 Notification 類即可,代碼如下:

var n = new Notification("桌面推送", {    icon: 'img/icon.png',    body: '這是我的第一條桌面通知。',    image:'img/1.jpg'});

于是你就會(huì)看到系統(tǒng)桌面彈出我上面那張截圖的通知。

PS:消息通知只有通過(guò) Web服務(wù)訪問(wèn) 該頁(yè)面時(shí)才會(huì)生效,如果直接雙擊打開(kāi)本地文件,是沒(méi)有任何效果的。也就是說(shuō)你的文件需要使用服務(wù)器的形式打開(kāi),而不是直接使用瀏覽器打開(kāi)本地文件。

當(dāng)然也有可能你什么都沒(méi)看到,別著急繼續(xù)往下看。

基本語(yǔ)法

當(dāng)然在想要彈出上面通知之前,有必要了解一下一個(gè)通知的基本語(yǔ)法:

let myNotification = new Notification(title, options);

title :定義一個(gè)通知的標(biāo)題,當(dāng)它被觸發(fā)時(shí),它將顯示在通知窗口的頂部。

options (可選)對(duì)象包含應(yīng)用于通知的任何自定義設(shè)置選項(xiàng)。

常用的選項(xiàng)有:

body: 通知的正文,將顯示在標(biāo)題下方。

tag: 類似每個(gè)通知的ID,以便在必要的時(shí)候?qū)νㄖM(jìn)行刷新、替換或移除。

icon: 顯示通知的圖標(biāo)

image: 在通知正文中顯示的圖像的URL。

data: 您想要與通知相關(guān)聯(lián)的任意數(shù)據(jù)。這可以是任何數(shù)據(jù)類型。

renotify: 一個(gè) Boolean 指定在新通知替換舊通知后是否應(yīng)通知用戶。默認(rèn)值為false,這意味著它們不會(huì)被通知。

requireInteraction: 表示通知應(yīng)保持有效,直到用戶點(diǎn)擊或關(guān)閉它,而不是自動(dòng)關(guān)閉。默認(rèn)值為false。

當(dāng)這段代碼執(zhí)行時(shí),瀏覽器會(huì)詢問(wèn)用戶,是否允許該站點(diǎn)顯示消息通知,如下圖所示:

HTML5,Web,Notification,桌面通知

只有用戶點(diǎn)擊了 允許 ,授權(quán)了通知,通知才會(huì)被顯示出來(lái)。

授權(quán)

如何獲取到用戶點(diǎn)擊的是“允許”還是“阻止”呢?

window的 Notification實(shí)例有一個(gè) requestPermission 函數(shù)用來(lái)獲取用戶的授權(quán)狀態(tài):

// 首先,我們檢查是否具有權(quán)限顯示通知  // 如果沒(méi)有,我們就申請(qǐng)權(quán)限  if (window.Notification && Notification.permission !== "granted") {      Notification.requestPermission(function (status) {      //status是授權(quán)狀態(tài)。      //如果用戶點(diǎn)擊的允許,則status為'granted'      // 如果用戶點(diǎn)擊的禁止,則status為'denied'           // 這將使我們能在 Chrome/Safari 中使用 Notification.permission      if (Notification.permission !== status) {        Notification.permission = status;      }    });  }

注意:如果用戶點(diǎn)擊了授權(quán)右上角的關(guān)閉按鈕,則status的值為default。

之后,我們只需要判斷 status 的值是否為 granted ,來(lái)決定是否顯示通知。

通知事件

但是單純的顯示一個(gè)消息框是沒(méi)有任何吸引力的,所以消息通知應(yīng)該具有一定的交互性,在顯示消息的前前后后都應(yīng)該有事件的參與。

Notification一開(kāi)始就制定好了一系列事件函數(shù),開(kāi)發(fā)者可以很方面的使用這些函數(shù)處理用戶交互:

有: onshow , onclick , onerror , onclose 。

var n = new Notification("桌面推送", {    icon: 'img/icon.png',    body: '這是我的第一條桌面通知。'});//onshow函數(shù)在消息框顯示時(shí)觸發(fā)//可以做一些數(shù)據(jù)記錄及定時(shí)關(guān)閉消息框等n.onshow = function() {    console.log('顯示消息框');    //5秒后關(guān)閉消息框    setTimeout(function() {        n.close();    }, 3000);};//消息框被點(diǎn)擊時(shí)被調(diào)用//可以打開(kāi)相關(guān)的視圖,同時(shí)關(guān)閉該消息框等操作n.onclick = function() {    console.log('點(diǎn)擊消息框');    // 打開(kāi)相關(guān)的視圖    n.close();};//當(dāng)有錯(cuò)誤發(fā)生時(shí)會(huì)onerror函數(shù)會(huì)被調(diào)用//如果沒(méi)有g(shù)ranted授權(quán),創(chuàng)建Notification對(duì)象實(shí)例時(shí),也會(huì)執(zhí)行onerror函數(shù)n.onerror = function() {    console.log('消息框錯(cuò)誤');    // 做些其他的事};//一個(gè)消息框關(guān)閉時(shí)onclose函數(shù)會(huì)被調(diào)用n.onclose = function() {    console.log('關(guān)閉消息框');    //做些其他的事};

 

一個(gè)簡(jiǎn)單的例子

<!DOCTYPE html><html lang="en">  <head>    <meta charset="UTF-8" />    <title>Document</title>  </head>  <body>    <button>點(diǎn)擊發(fā)起通知</button>  </body>  <script>    window.addEventListener("load", function() {      // 首先,讓我們檢查我們是否有權(quán)限發(fā)出通知      // 如果沒(méi)有,我們就請(qǐng)求獲得權(quán)限      if (window.Notification && Notification.permission !== "granted") {        Notification.requestPermission(function(status) {          if (Notification.permission !== status) {            Notification.permission = status;          }        });      }      var button = document.getElementsByTagName("button")[0];      button.addEventListener("click", function() {        // 如果用戶同意就創(chuàng)建一個(gè)通知        if (window.Notification && Notification.permission === "granted") {          var n = new Notification("Hi!");        }        // 如果用戶沒(méi)有選擇是否顯示通知        // 注:因?yàn)樵?Chrome 中我們無(wú)法確定 permission 屬性是否有值,因此        // 檢查該屬性的值是否是 "default" 是不安全的。        else if (window.Notification && Notification.permission !== "denied") {          Notification.requestPermission(function(status) {            if (Notification.permission !== status) {              Notification.permission = status;            }            // 如果用戶同意了            if (status === "granted") {              var n = new Notification("Hi!");            }            // 否則,我們可以讓步的使用常規(guī)模態(tài)的 alert            else {              alert("Hi!");            }          });        }        // 如果用戶拒絕接受通知        else {          // 我們可以讓步的使用常規(guī)模態(tài)的 alert          alert("Hi!");        }      });    });  </script></html>

 

當(dāng)我們打開(kāi)界面的時(shí)候,就會(huì)彈出授權(quán)申請(qǐng),如果我們點(diǎn)擊 允許 ,然后點(diǎn)擊按鈕,就可以發(fā)送一條通知到桌面,我們就可以在桌面右下角看到這條通知。

HTML5,Web,Notification,桌面通知

上面我們只是顯示一條消息。

if (status === "granted") {  var n = new Notification("Hi");}

如果我們有很多消息的話,比如我是用個(gè)for循環(huán)來(lái)模擬大量通知的情況。

for(var i=0; i<10; i++) {    var n = new Notification("Hi,"+i);}

可以看到有10條通知都顯示出來(lái)。但是某些情況下對(duì)于用戶來(lái)說(shuō),顯示大量通知是件令人痛苦的事情。

比如,如果一個(gè)即時(shí)通信應(yīng)用向用戶提示每一條傳入的消息。為了避免數(shù)以百計(jì)的不必要通知鋪滿用戶的桌面,可能需要接管一個(gè)掛起消息的隊(duì)列。

HTML5,Web,Notification,桌面通知

因此,需要為新建的通知添加一個(gè) 標(biāo)記 。

如果有一條新通知和上一條通知具有相同的標(biāo)記,那么這條新通知將會(huì)替換上一條通知,最后桌面上只會(huì)顯示最新的通知。

還是上面的例子,只需要在觸發(fā)通知加個(gè) tag 屬性即可:

 

for (var i = 0; i < 10; i++) {   // 最后只看到內(nèi)容為 "Hi! 9" 的通知    var n = new Notification("Hi! " + i, {tag: 'soManyNotification'});}

最后

消息通知是個(gè)不錯(cuò)的特性,可是也不排除有些站點(diǎn)惡意的使用這個(gè)功能,一旦用戶授權(quán)之后,不時(shí)的推送一些不太友好的消息,打擾用戶的工作,這個(gè)時(shí)候我們可以移除該站點(diǎn)的權(quán)限,禁用其消息通知功能。

我們可以點(diǎn)擊瀏覽器地址輸入框左邊的嘆號(hào)就有一個(gè)通知的選項(xiàng),我們可以修改授權(quán)?;蛘咴谕ㄖ?yè)面也有修改通知的選項(xiàng),可以根據(jù)具體情況進(jìn)行修改授權(quán)通知。

HTML5,Web,Notification,桌面通知

HTML5,Web,Notification,桌面通知

于是最基本的 Web Notification 就實(shí)現(xiàn)了。

總結(jié)

以上所述是小編給大家介紹的HTML5中的Web Notification桌面通知功能的實(shí)現(xiàn)方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)VeVb武林網(wǎng)網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到HTML教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
日本电影全部在线观看网站视频| 女同互忝互慰dv毛片观看| 国产精品美女网站| 91专区在线观看| 激情五月综合网| 羞羞视频网站在线免费观看| 国产免费成人| 亚洲一区二区精品视频| 在线一级观看| 成人h视频在线观看| 国产精品午夜福利| 色综合久久88色综合天天6| 91免费在线视频观看| **孕交吃奶水一级毛片| 成人mm视频在线观看| 欧美系列一区| 国产大学生粉嫩无套流白浆| 黄色小视频免费看| 69久久夜色精品国产69蝌蚪网| 色播五月综合网| 99re在线视频免费观看| 四色永久网址| 日欧美一区二区| 自拍偷拍欧美亚洲| 成a人片亚洲日本久久| 亚洲高清成人| 欧美性xxxx极品高清hd直播| 69xxxx国产| 欧美特黄一级大片| 国产成人av一区二区三区| 久久黄色片网站| 97人洗澡人人免费公开视频碰碰碰| 秋霞av国产精品一区| 亚洲免费在线看| 99麻豆久久久国产精品免费| 国产免费1000拍拍拍| 天堂在线中文| 国内精品久久久久久不卡影院| 熟妇高潮一区二区| 在线观看精品国产| 日韩免费观看高清完整版| 大菠萝精品导航| av视屏在线播放| 成人黄页在线观看| 亚洲精品中文字幕乱码| 亚洲欧洲精品一区二区精品久久久| 欧美日韩国产观看视频| 国产av人人夜夜澡人人爽| 一区二区三区福利| 一区二区三区日韩视频| 亚洲最大天堂网| 神马久久av| 欧美日韩黄色大片| 欧美洲成人男女午夜视频| 国产在线播放精品| 国产男女激情视频| 色偷偷88欧美精品久久久| 九九热在线视频| 国产一区二区中文字幕免费看| 在线不卡日本v二区707| 51国偷自产一区二区三区| 最新精品国偷自产在线| 狠狠躁夜夜躁人人爽天天天天97| 天堂成人国产精品一区| 成人3d精品动漫精品一二三| 国产在线精品不卡| 日本道在线观看一区二区| 国产一区二区网站| 九九热免费在线| 中文av字幕| 青娱乐免费在线视频| 欧美一级做性受免费大片免费| 99在线精品视频免费观看软件| 国产精品久久久久毛片大屁完整版| 精品人妻在线视频| 欧美剧情电影在线观看完整版免费励志电影| 国产精品劲爆视频| 成人欧美一区二区三区在线| 精品人妻一区二区免费| 亚洲午夜精品福利| 黄瓜视频免费观看在线观看www| 国产一区激情| 久久久久久中文字幕| 国产精一区二区| 亚洲欧美视频在线观看视频| 亚洲黄色在线| 日韩电影在线观看网站| 裸体丰满少妇做受久久99精品| 四虎影视网站| 116极品美女午夜一级| 毛片在线不卡| 中文字幕国产专区| 毛片网站免费| 中文字幕日韩一区| 国产suv精品一区二区三区88区| free性欧美69巨大| eeuss影院18www免费| 国产成人高清精品| 99精彩视频在线观看免费| 国产精品一区二区久久精品爱涩| 欧美精品video| 久久视频在线直播| 九色porny丨国产精品| 亚洲美女偷拍久久| re久久精品视频| 婷婷久久免费视频| 欧美精品一区二区三区蜜桃视频| 亚洲黄色av| 国产精品18久久久久网站| 国内精品久久久久影院色| 91视频婷婷| 日本欧美一区二区三区乱码| 成人情视频高清免费观看电影| 深夜日韩欧美| 国产主播精品| 一本一道人人妻人人妻αv| 国产性色一区二区| 精品国产乱码一区二区| 国产高清一区日本| 国产又爽又黄的激情精品视频| 国产精品亚洲αv天堂无码| 九九热99视频| 亚洲一区二区三区爽爽爽爽爽| 99re6热在线精品视频播放| 亚洲精品18在线观看| 日韩精品视频在线观看免费| 一本大道av一区二区在线播放| 日韩久久免费av| 宅男视频免费在线观看视频| 亚洲aⅴ乱码精品成人区| 成年人午夜视频| 夜夜躁狠狠躁日日躁婷婷小说| 亚洲主播在线| 欧美性生活大片免费观看网址| 狂野欧美性猛交| 一个人看免费www视频有多爽| 国产va免费精品观看精品视频| 国产av无码专区亚洲a∨毛片| 亚洲视频资源在线| 欧美残忍xxxx极端| 欧美大胆a视频| 综合分类小说区另类春色亚洲小说欧美| 亚洲桃色综合影院| 国产绿帽一区二区三区| 欧美午夜性囗交xxxx| 91蝌蚪|人| 一区二区免费看| 亚欧精品在线视频| 99国产揄拍国产精品| 日韩av福利在线观看| 色综合久久久久无码专区| 精品国产一区二区在线观看| 亚洲影院在线观看| 国产一级淫片久久久片a级| 91视频国产精品| 中文字幕人妻一区二区| 激情五月婷婷六月| 2020国产在线| 精品国产乱码久久久久久郑州公司| 亚洲香蕉网站| 伊人影院在线播放| 国内外成人激情免费视频| 久久久久久久999精品视频| 欧美一级视频免费| 中文字幕一区二区三区手机版| 在线丝袜欧美日韩制服| 中文字幕一区在线播放| 久久五月天综合| 国产在线第一页| 亚洲激情一区二区三区| 精品国产91亚洲一区二区三区婷婷| 欧美性极品xxxx娇小| 免费成人在线视频观看| 四虎精品成人免费网站| 国产成人精品一区二三区在线观看| 美女av电影| a级网站在线观看| 日本午夜视频在线观看| 国产一区二区三区日韩欧美| 日韩一区二区三区四区区区| 1234区中文字幕在线观看| 精品淫伦v久久水蜜桃| 免费av一区二区| 久久亚洲一区二区三区四区五区高| 日韩国产精品一区| 男人的天堂www| 影音先锋亚洲精品| 久久精品一本| 欧美日韩影视| 日韩视频在线直播| 久久婷婷综合国产| 久久人人超碰精品| 日韩一区免费视频| 国产精品乱码一区二区三区软件| 成人黄色国产精品网站大全在线免费观看| 国产精品白嫩美女在线观看| 国产精品无av码在线观看| 亚洲影院免费观看| 欧美日韩亚洲三区| 欧美日韩性在线观看| 日韩欧美精品一区| 亚洲视频电影图片偷拍一区| 男人天堂亚洲二区| 欧美一区二区二区| 久久久久久三级| 中文字幕一区二区人妻电影丶| 国产91在线看| 亚洲乱码精品一二三四区日韩在线| 久久久久久久国产| 国产精品全国免费观看高清| 欧美凹凸一区二区三区视频| 爱久久·www| 亚洲精品中文字幕乱码三区91| 中文字幕一区日韩精品| 高清国语自产在线观看| 国内精品免费在线观看| 中文在线资源观看网站视频免费不卡| 日韩精品最新网址| 亚洲一区在线观看视频| 国产成人三级| 高清亚洲高清| 99国产盗摄| 欧美在线首页| 欧洲激情一区二区| 亚洲乱熟女一区二区| 久久久国产一区二区三区| 99re热久久这里只有精品34| 国产日韩久久久| 538国产精品视频一区二区| 欧美熟妇精品黑人巨大一二三区| 成人9ⅰ免费影视网站| 国产精品无码久久久久久| 天天射天天干天天| 久久久久久高清| 中文一区在线| 日韩精品亚洲一区| 天堂√在线观看一区二区| 亚洲第一大网站| 性欧美激情精品| www日韩欧美| 成人黄色大片在线免费观看| 在线欧美日韩国产| 欧美片一区二区| www高清在线视频日韩欧美| 精品国产一区二区三| 一区二区三区不卡在线视频| 亚洲网站在线观看| 国产aⅴ夜夜欢一区二区三区| 国产有码在线观看| 毛片手机在线观看| 亚洲第一成年网| 久久国产精彩视频| 亚洲国产精品专区久久| 欧美一区二区色| 亚洲免费av网| 欧美亚洲免费在线一区| 少妇一级黄色片| 国产精品亚洲激情| 黑巨茎大战欧洲金发美女| 欧美日韩国产一区在线| 欧美大片1688网站| 成人黄色片网站| 国产精品网在线观看| 懂色av一区二区三区| 亚洲男人的天堂网站| 不卡视频在线播放| 色黄视频在线观看| 成人在线视频网站| sm捆绑调教国产免费网站在线观看| 91免费版黄色| 亚洲 国产 日韩 综合一区| 亚洲精品xxx| 成人高清电影网站| 日日噜噜噜噜夜夜爽亚洲精品| 四虎精品一区二区免费| 亚洲欧洲av色图| 黄色成人在线视频| 国内精品国产三级国产a久久| 四虎永久在线精品免费一区二区| 91国产视频在线观看| 久久久久97| 四虎精品永久在线| 成人同人动漫免费观看| 国产三级电影在线播放| 久久精品视频中文字幕| 91精品啪在线观看国产爱臀| 亚洲欧美日韩第一页| av网站免费线看精品| 午夜欧美福利视频| 国产精品色视频| www.青青草| 国产精品伦一区二区三区| 中文字幕av免费在线观看| 日韩女同互慰一区二区| 色婷婷av一区二区三区之e本道| 精品视频第一页| av片在线观看免费| 欧美激情成人在线视频| 日韩精品专区在线影院重磅| 黄色一区二区在线| 伊人久久精品一区二区三区| 国产成人无码www免费视频播放| 美女91在线| 奇米影视888狠狠狠777不卡| 国产欧美不卡| 先锋男人资源站| 国产刺激高潮av| 懂色av中文在线| www.99av.com| 亚洲成人中文在线| 亚洲大胆人体大胆做受1| 欧美男插女视频| 免费一区二区| 亚洲h精品动漫在线观看| 国产伦精品一区二区三区四区免费| 欧美综合国产精品久久丁香| 亚洲最大黄网| 欧洲视频一区二区三区| 林心如三级全黄裸体| 亚洲成人激情视频| 电影一区电影二区| 日韩黄色影片| 日韩第一页在线| 黑人一区二区三区| 久久亚洲精品小早川怜子| 国产精品久久影院| 日韩欧美中文字幕一区| 亚洲av激情无码专区在线播放|