日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > HTML > 正文

HTML5中的Web Notification桌面通知功能的實現方法

2024-08-26 00:21:37
字體:
來源:轉載
供稿:網友

有的時候我們會在桌面右下角看到這樣的提示:

HTML5,Web,Notification,桌面通知

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

Web Notifications 技術使頁面可以發出通知,通知將被顯示在頁面之外的系統層面上。能夠為用戶提供更好的體驗,即使用戶忙于其他工作時也可以收到來自頁面的消息通知,例如一個新郵件的提醒,或者一個在線聊天室收到的消息提醒等等。

PS:除了IE外,各大現代瀏覽器都對這個桌面推送有了基本的支持。

開始

要創建一個消息通知,非常簡單,直接使用 window 對象下面的 Notification 類即可,代碼如下:

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

于是你就會看到系統桌面彈出我上面那張截圖的通知。

PS:消息通知只有通過 Web服務訪問 該頁面時才會生效,如果直接雙擊打開本地文件,是沒有任何效果的。也就是說你的文件需要使用服務器的形式打開,而不是直接使用瀏覽器打開本地文件。

當然也有可能你什么都沒看到,別著急繼續往下看。

基本語法

當然在想要彈出上面通知之前,有必要了解一下一個通知的基本語法:

let myNotification = new Notification(title, options);

title :定義一個通知的標題,當它被觸發時,它將顯示在通知窗口的頂部。

options (可選)對象包含應用于通知的任何自定義設置選項。

常用的選項有:

body: 通知的正文,將顯示在標題下方。

tag: 類似每個通知的ID,以便在必要的時候對通知進行刷新、替換或移除。

icon: 顯示通知的圖標

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

data: 您想要與通知相關聯的任意數據。這可以是任何數據類型。

renotify: 一個 Boolean 指定在新通知替換舊通知后是否應通知用戶。默認值為false,這意味著它們不會被通知。

requireInteraction: 表示通知應保持有效,直到用戶點擊或關閉它,而不是自動關閉。默認值為false。

當這段代碼執行時,瀏覽器會詢問用戶,是否允許該站點顯示消息通知,如下圖所示:

HTML5,Web,Notification,桌面通知

只有用戶點擊了 允許 ,授權了通知,通知才會被顯示出來。

授權

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

window的 Notification實例有一個 requestPermission 函數用來獲取用戶的授權狀態:

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

注意:如果用戶點擊了授權右上角的關閉按鈕,則status的值為default。

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

通知事件

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

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

有: onshow , onclick , onerror , onclose 。

var n = new Notification("桌面推送", {    icon: 'img/icon.png',    body: '這是我的第一條桌面通知。'});//onshow函數在消息框顯示時觸發//可以做一些數據記錄及定時關閉消息框等n.onshow = function() {    console.log('顯示消息框');    //5秒后關閉消息框    setTimeout(function() {        n.close();    }, 3000);};//消息框被點擊時被調用//可以打開相關的視圖,同時關閉該消息框等操作n.onclick = function() {    console.log('點擊消息框');    // 打開相關的視圖    n.close();};//當有錯誤發生時會onerror函數會被調用//如果沒有granted授權,創建Notification對象實例時,也會執行onerror函數n.onerror = function() {    console.log('消息框錯誤');    // 做些其他的事};//一個消息框關閉時onclose函數會被調用n.onclose = function() {    console.log('關閉消息框');    //做些其他的事};

 

一個簡單的例子

<!DOCTYPE html><html lang="en">  <head>    <meta charset="UTF-8" />    <title>Document</title>  </head>  <body>    <button>點擊發起通知</button>  </body>  <script>    window.addEventListener("load", function() {      // 首先,讓我們檢查我們是否有權限發出通知      // 如果沒有,我們就請求獲得權限      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() {        // 如果用戶同意就創建一個通知        if (window.Notification && Notification.permission === "granted") {          var n = new Notification("Hi!");        }        // 如果用戶沒有選擇是否顯示通知        // 注:因為在 Chrome 中我們無法確定 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!");            }            // 否則,我們可以讓步的使用常規模態的 alert            else {              alert("Hi!");            }          });        }        // 如果用戶拒絕接受通知        else {          // 我們可以讓步的使用常規模態的 alert          alert("Hi!");        }      });    });  </script></html>

 

當我們打開界面的時候,就會彈出授權申請,如果我們點擊 允許 ,然后點擊按鈕,就可以發送一條通知到桌面,我們就可以在桌面右下角看到這條通知。

HTML5,Web,Notification,桌面通知

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

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

如果我們有很多消息的話,比如我是用個for循環來模擬大量通知的情況。

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

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

比如,如果一個即時通信應用向用戶提示每一條傳入的消息。為了避免數以百計的不必要通知鋪滿用戶的桌面,可能需要接管一個掛起消息的隊列。

HTML5,Web,Notification,桌面通知

因此,需要為新建的通知添加一個 標記 。

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

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

 

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

最后

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

我們可以點擊瀏覽器地址輸入框左邊的嘆號就有一個通知的選項,我們可以修改授權。或者在通知頁面也有修改通知的選項,可以根據具體情況進行修改授權通知。

HTML5,Web,Notification,桌面通知

HTML5,Web,Notification,桌面通知

于是最基本的 Web Notification 就實現了。

總結

以上所述是小編給大家介紹的HTML5中的Web Notification桌面通知功能的實現方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!


注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产v日产∨综合v精品视频| 日韩三级在线播放| 日韩国产在线不卡视频| 久久久水蜜桃| 欧美日韩视频网站| 在线精品日韩| 欧美在线亚洲一区| 国产福利在线播放| 亚洲综合在线视频| 日韩精品午夜| 二区视频在线观看| 欧美亚洲国产日韩| www..com日韩| 激情五月综合| 精产国产伦理一二三区| 中文在线日韩| 精品一性一色一乱农村| 国产成人精品三级| 国产偷久久久精品专区| 亚洲乱码视频| 亚洲 欧美 日韩系列| 一二三区精品视频| 日韩中文首页| 日韩精品一级| 国产极品嫩模在线视频一区 | 69av亚洲| 国产成人va亚洲电影| 中文天堂资源在线| 欧美日韩国产在线播放| 国产自产视频| 伊人网站在线| 高清1区2区| 91久久精品视频| 一区二区高清在线| 天天摸日日摸狠狠添| 中文字幕亚洲国产| 亚洲欧洲在线观看av| 亚洲一区中文字幕在线观看| 99精品一级欧美片免费播放| 国产福利久久| 激情国产在线| 日韩欧美国产综合| 91麻豆视频网站| 中文字幕最新精品| 日韩在线视频观看| 日韩欧美一二三四区| 亚洲一区日韩精品中文字幕| 91精品综合久久久久久 | 99视频一区| 精品亚洲综合| 日本不卡一区在线| 欧美不卡视频一区| 欧美精选午夜久久久乱码6080| 亚洲国产91精品在线观看| 国产欧美日产一区| 一区二区三区视频网站| 中文字幕最新精品| 99精品免费观看| 国产aa精品| 国产手机精品视频| 亚洲免费观看在线观看| 不卡一二三区| 日本亚洲欧美| 精品一二三四区| 日本国产在线视频| 高清国产一区| 国产网站欧美日韩免费精品在线观看 | 日本免费看黄| 久久精品久久精品国产大片| 日本а中文在线天堂| 欧美亚洲另类制服自拍| 国产在线不卡一区| 日韩精品a在线观看91| 国产视频不卡| 欧美在线日韩精品| 91精品国产综合久久香蕉的特点| 国产一区成人| 中文字幕第一页在线播放| 亚洲视频中文字幕| 日韩精品在线免费观看| 精品在线99| 日韩午夜高潮| 美女黄a一级视频| 精品日韩在线播放| 日韩在线视频观看| 精品人妻一区二区三区视频| 91精品国产综合久久久久| 一二三区精品视频| 中文字幕在线精品| 日韩一级免费在线观看| 香蕉精品久久| 日韩精品首页| 日韩在线观看a| 国产日韩中文字幕| 亚洲一级二级| 中文字幕在线观看视频www| 国产123在线| 综合激情一区| 91精品国产丝袜白色高跟鞋| 国产视频不卡| 日韩欧美国产午夜精品| 欧美日韩国产中文精品字幕自在自线| 日韩 国产 一区| 国产亚洲福利| 国产一区 二区 三区一级| 日韩欧美不卡视频| 中文字幕亚洲一区在线观看| 国产调教精品| 国产95在线|亚洲| 国产乱码在线观看| 日韩欧美在线精品| 精品久久久视频| 亚洲三级免费看| 天天综合天天添夜夜添狠狠添| 久久99精品国产| 国自产拍在线网站网址视频| 国产高清在线一区| 69堂精品视频在线播放| 搞黄在线观看| 午夜亚洲一区| 国产中文伊人| 日韩精品在线第一页| av午夜在线| 日韩不卡一区二区| 国产精品福利视频一区二区三区| 欧美日韩夫妻久久| 国产福利精品导航| 1区2区在线| 中文字幕欧美人妻精品一区蜜臀| 在线观看国产一级片| 亚洲中文字幕在线一区| 亚洲 欧美 精品| 亚洲福利精品| 一区在线播放视频| 91精品国产91久久| www.xxxx精品| 天堂在线www天堂中文在线| 91av久久久| 免费看日韩精品| 日韩免费视频| 日韩精品资源二区在线| 亚洲综合在线小说| 一区精品在线播放| 成片免费观看| 婷婷精品进入| 欧美国产综合在线V| 亚洲最新永久观看在线| 一区在线视频观看| 精品欧美日韩在线| 在线视频观看日韩| 精品国产免费视频| 国产成人精品日本亚洲专区61| 精品在线91| 欧美日韩中文字幕综合视频| 欧美激情一区二区在线| 精品视频在线视频| 亚洲日本精品视频| 国产成人精品免费网站| 日本不卡一区在线| aa国产成人| 天堂在线中文资源| 日韩精品福利一区二区三区| 日韩不卡一二三区| 国产一区高清视频| 亚洲一区视频在线观看视频| 日韩一级二级三级| 日韩在线观看视频一区| 亚洲中文字幕一区| 在线欧美日韩精品| 日韩精品―中文字幕| 欧美不卡视频一区发布| 亚洲福利视频在线| 国产三级视频网站| 国产丝袜一区| 欧美日韩精品综合在线 | 中文字幕2020第一页| 国产亚洲欧美中文| 国内精品不卡| 欧美日韩免费高清| 日韩美女中文字幕| 亚洲视频在线观看三级| 精品视频www| 日韩亚洲欧美中文在线| 在线精品视频免费播放| 三级精品视频| 中文字幕亚洲第一| 日韩精品免费观看视频| 国产黄色精品| 日韩精品不卡一区二区| 一区二区高清视频| 精品亚洲国内自在自线福利| 欧美日韩精品欧美日韩精品 | 不卡av免费在线| 久久久91精品国产| 91精品综合久久| 免费国产h视频在线观看86| 日韩精品视频在线观看免费| 国产高清大尺度一区二区不卡| 中文在线一区| 中文字幕国产视频| 日韩国产欧美三级| 国产欧美日韩91| 99在线精品视频免费观看20| 日韩欧美中文第一页| 欧美乱大交xxxxx免费| 亚洲免费观看视频| 欧美日韩在线视频首页| 午夜伊人狠狠久久| 日韩久久在线| 欧美日韩高清| 国产视频一区三区| 国产三级精品网站| 国产一区不卡精品| 99精品一级欧美片免费播放| 91精品久久久久久蜜臀| 一区视频在线播放| 国产91久久久久蜜臀青青天草二| 亚洲免费观看在线观看| 国产95在线|亚洲| 国产欧美日韩精品高清二区综合区| 久久精品黄色片| 国产欧美日韩中文| 在线综合 亚洲 欧美中文字幕| 日韩欧美三级| 欧美日韩视频免费播放| 日韩av综合在线观看| 亚洲 欧美 中文字幕| 一区二区视频免费看| 免费国产成人看片在线| 久久精品日韩欧美| 国产午夜精品全部视频播放| 国产91大片| 一区二区不卡视频在线观看| 日韩欧美色综合网站| 亚洲三级网站| 亚洲综合日韩欧美| 日韩福利视频导航| 不卡一区2区| 欧美 日韩 国产 在线观看| 免费视频中文字幕| 欧美日韩一级片在线观看| 日韩欧美中文在线视频| 中文字幕欧美日韩| 日韩视频在线观看视频| 欧美日韩一级片在线观看| 国产黄色在线免费观看| 一区二区三区精品久久久| 中文在线中文字幕| 久草中文在线观看| 欧美日韩高清在线一区| 中文字幕亚洲欧美| 在线精品视频免费播放| 国产午夜在线观看| 国产一二三精品| 蜜桃久久av| а√天堂8资源中文在线| 日韩三级在线播放| 内射国产内射夫妻免费频道| 中文字幕亚洲区| 中文字幕精品视频| 亚洲羞羞网站| 精品中文在线| 亚洲免费在线视频一区 二区 | 欧美日韩中文在线| 国产真实乱子伦精品视频| 亚洲欧洲日产国码av系列天堂| 国产黄色一区| 日韩精品在线第一页| 欧美日韩在线三级| 中文字幕欧美日韩精品| 亚洲成av人片在线| 国产一区不卡精品| 亚洲久草视频| 天天综合日日夜夜精品| 欧美黄页在线免费观看| 亚洲中午字幕| 日韩精品在线视频| 日韩亚洲欧美中文三级| 一级国产黄色片| 久久99久久久久久久噜噜| 欧洲精品在线一区| 福利在线国产| 国产欧美日韩精品在线| 欧美一级免费在线观看| 日韩欧美久久久| 精品视频123区在线观看| 中文在线不卡视频| 99精品视频99| 精品日韩99亚洲| 日韩视频免费直播| www.尤物.com| 午夜亚洲一区| 色国产在线视频| 九一久久久久久| 日韩欧美中文视频| 亚洲3区在线| 国产最新在线| 久精品在线观看| 欧美日韩免费精品| av免费不卡国产观看| 青青久在线视频免费观看| 精品成a人在线观看| 亚洲免费精品| 国产999精品在线观看| 日韩免费精品| 亚洲第一网中文字幕| 亚洲国产综合久久| 69av亚洲| 日韩欧美中文免费| 91精品久久久久久久久久| 亚洲福利视频专区| 一区二区三区在线免费| 一区二区三区精品在线| www日韩在线观看| 日韩视频在线免费播放| 欧美 日韩 综合| 韩国v欧美v日本v亚洲| 国产v日产∨综合v精品视频| 国产亚洲一区字幕| 91精品国产综合久久香蕉最新版 | 日韩视频一区| 综合激情一区| 欧美日韩国产一区中文午夜| 欧美日韩视频在线| 欧美日韩乱国产| 国产永久免费高清在线观看| 国产一区久久| 91精品国产91久久久久久不卡| 91精品视频国产| av不卡免费看| 亚洲综合日韩中文字幕v在线| 精品人妻一区二区免费视频| 99热最新网址| 国产一级在线播放| 国产不卡一区| 欧美日韩亚洲国内综合网俺| 欧美日韩综合在线| 亚洲日产av中文字幕| 久久久综合精品| 国产一卡二卡3卡4卡四卡在线| 欧美日韩一级视频| 中文字幕在线视频第一页| 一区二区在线观看不卡| 久久91精品视频| 亚洲三级中文字幕| 欧美国产综合在线V| 欧美日韩国产专区| 在线精品视频免费播放| 日韩精品中文字幕第1页| 国产99在线 | 亚洲| 一级特黄大欧美久久久| 日韩精品国产欧美| 91欧美在线视频| 人妻一区二区三区免费| 日韩视频在线免费播放| 色欧美日韩亚洲| 一区二区欧美国产| 久久精品在线免费观看| 高清日韩中文字幕| 国产日韩三级| 日本亚洲欧美天堂免费| 红桃视频亚洲| 精品视频在线导航| 精品视频999| 亚洲美女视频一区| 欧美日韩国产不卡| 久久精品国产视频| 国产性一级片| 最新中文字幕在线播放 | av免费在线网站| 国产一卡二卡3卡4卡四卡在线 | 国产黄色在线观看| 欧美日韩在线视频免费观看| 国产欧美日韩第一页| 日韩一级精品| 亚洲娇小xxxx欧美娇小| 不卡视频一区二区三区| 精品久久久91| 日韩国产欧美三级| 视频一区不卡| 在线视频三区| 亚洲一区在线观看网站| 久99久视频| 日韩亚洲一区在线| 欧美日韩中文在线| 97国产视频| 日韩欧美中文字幕在线观看| 日韩在线三区| 午夜亚洲福利| 免费国产成人看片在线| 伊人精品视频| 日韩中文在线中文网三级| 亚洲理论中文字幕| 欧美日韩国产高清一区| 国产网站av| 中文字幕五月欧美| 国产黄色在线播放| 91精品日本| 国产欧美日韩成人| 中文天堂在线一区|