HTML5 Notification消息通知


Notification 對象用來為用戶設置和顯示桌面通知,Web Notifications API 可以將通知發送至頁面之外的系統層級上,因此,即便應用處於空閑狀態或是在后台,web 應用仍然可以通過這個 API 向用戶發送信息。比如網頁版微信,每當用戶收到一條新的消息,就會有一條通知顯示給用戶

用法

var notification = new Notification(title, [options])

參數

Param Type Description
title string 顯示的通知標題
[options] object 顯示通知的配置項,可選
[options.dir] string 文字方向, 取值為 auto、ltr、rtl 之一
[options.lang] string 通知的語言,這個字符串必須在 BCP 47 language tag 文檔中是有效的。
[options.body] string 通知的內容
[options.tag] string 通知的 id,通過此 id 可以對通知進行刷新、替換或移除
[options.icon] string 通知的圖標圖片URL,將被用於顯示通知的圖標。

請求權限 
要顯示通知,需要得到用戶的授權,Notification 提供了 requestPermission 方法向用戶申請顯示通知的權限,此方法只能被用戶行為調用(比如在onclick 事件中)

Notification.requestPermission(function(permission) {

   if (permission === "granted") {

       console.log(11)

       popNotice()

   }

});

權限狀態 
只讀屬性 Notification.permission 可以用來獲取用戶授權狀態

  • denied :拒絕通知顯示

  • granted :允許通知顯示

  • default :用戶尚未被詢問是否授權,在瀏覽器中表現與 denied 相同

事件處理 
Notification 實例上的事件監聽

  • onshow/ondisplay : 在通知顯示的時觸發

  • onclick : 當用戶點擊通知時觸發

  • onerror : 當通知出現錯誤時觸發

  • onclose :當用戶關閉通知時觸發

Example

<button class="button">Hello</button>

<script type="text/javascript">

var button = document.querySelector('.button')

 

button.addEventListener('click', function() {

   if (!("Notification" in window)) {

       alert("不支持 notification");

   } else if (Notification.permission === "granted") { // 允許通知

       notice()

   }else if (Notification.permission !== 'denied') { // 用戶沒有選擇是否顯示通知,向用戶請求許可

       Notification.requestPermission(function(permission) {

           if (permission === "granted") {

               notice()

           }

       });

   }

}, false)

 

 

function notice() {

   var notification = new Notification("你好,JavaScript",{

       body:'微信訂閱號',

       icon:"https://mp.weixin.qq.com/misc/getheadimg?token=990524500&fakeid=3006291623&r=674680"

   });

 

   notification.onclick = function(){

       notification.close()

   }

}

</script>

瀏覽器支持

  • Firefox 22+

  • Cheome 22+

  • Safari 6+

  • Opera 25+

  • Edge 14+

pc端基本支持(忘掉IE吧),移動端,在ios safari 上暫不支持,androd 4.4+ browser需要添加 webkit 前綴,上月24號發布的Firefox 51 for android 已經支持消息通知,安卓用戶可以下載最新的Firefox瀏覽器在手機端體驗(點擊閱讀原文查看demo),你也可以在 pc 瀏覽器查看 demo,效果類似手機默認系統消息提示


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM