摘要:從開始,就被取消了,只能使用標準化的。獲取權限無論是新版還是老版的,都是需要得到用戶的批準,才能獲取到相應的權限。老版獲取權限的方式是這樣的通過方法檢查當前是否已獲得權限。調用剛剛創建的對象的方法來進行顯示。
最近又鼓搗起兩年前做的一個chrome擴展,想要跑起來卻發現報錯了,看了下console,首先是indexedDB報錯,說是window.webkitIndexedDB已經被廢棄了,用window.indexedDB代替后,就沒再報錯了,看來我這chrome 46的indexedDB api只是改了個更通用的名稱,還是比較厚道的,所以,這里就不詳述了。
真正出問題的是桌面通知,chrome 46給我報的錯是window.webkitNotifications不是個對象,這可坑爹了都沒提示我要換成什么。馬上百度谷歌一起上,排名前列的大部分都是我當年就看到的老資料,好不容易找到最新的資料,測試可用,下面介紹一下新版的window.Notifications與老版的window.webkitNotifications有什么區別。
從chrome 22開始,webkitNotifications就被取消了,只能使用標準化的Notification。
獲取權限無論是新版還是老版的notification api,都是需要得到用戶的批準,才能獲取到相應的api權限。
老版獲取權限的方式是這樣的:
通過checkPermission()方法檢查當前是否已獲得權限。
若尚未獲得權限,則調用requestPermission()方法向用戶請求權限。
而新版取消了checkPermission()方法,直接通過requestPermission()方法完成查詢權限及獲取權限這兩項任務,具體代碼如下:
Notification.requestPermission(function(status){ //status值有三種:default/granted/denied if(Notification.permission !== status){ Notification.permission = status; } });創建消息
重點來了,老版是這樣的:
利用window.webkitNotifications.createNotification()或window.webkitNotifications.createHTMLNotification()方法來創建一個Notification對象。
調用剛剛創建的Notification對象的show()方法來進行顯示。
新版則又精簡了一點,直接new一個Notification對象,在new的時候把桌面通知的參數都傳進去,這桌面通知就會馬上顯示,具體代碼看下方:
var options={ dir: "ltr", //控制方向,據說目前瀏覽器還不支持 lang: "utf-8", icon: "http://ihuster.com/static/avatar/m_default.png", body: "你好呀,歡迎留言交流呀" }; var n = new Notification("hello word!", options);
另外新版還有一點不同的是,提供了4個事件:
onshow()
onclick()
onclose()
onerror()
參考文章:
《使用HTML5 Notification API開啟瀏覽器桌面提醒》
《使用 Web Notifications》
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/91564.html
摘要:原文譯文的消息通知機制譯者已經被應用到開發中。所以先要征求用戶的許可而不是直接顯示通知。然后,獲取用戶許可之后,我們可以顯示兩種類型的信息最后執行通知代碼。 原文:HTML 5 Notification 譯文:HTML 5 的消息通知機制 譯者:dwqs showImg(https://segmentfault.com/img/bVks7a); HTML 5 已經被應用到Web...
閱讀 1169·2021-11-24 09:38
閱讀 3613·2021-11-22 15:32
閱讀 3467·2019-08-30 15:54
閱讀 2575·2019-08-30 15:53
閱讀 1504·2019-08-30 15:52
閱讀 2558·2019-08-30 13:15
閱讀 1847·2019-08-29 12:21
閱讀 1406·2019-08-26 18:36