Notification(通知):利用JavaScript 實作瀏覽器推播通知
文章推薦指數: 80 %
目前支援的主流瀏覽器有Chrome(42+ 才能與Service Worker 合用)、Firefox(22+)、Safari(6+)、Opera(25+)和Edge。
以下程式碼檢查瀏覽器是否支援 ...
Summer。
桑莫。
夏天
❤️🍰🌹🎬🚴♀️🏋️♀️💻🚀💜
這裡記錄了我的前端學習和開發筆記,歡迎交流(*´∀`)~♥
關於我、所有文章和標籤列表
關於我
所有文章
標籤列表
©2022.Allrightsreserved.
Notification(通知):利用JavaScript實作瀏覽器推播通知
09Jul2017
PushNotification
javascript
讀書會
概述
實作瀏覽器推播通知的過程以下面的流程圖表示,會經過幾個步驟:瀏覽器支援度檢查、請求授權、建立通知、發出通知、分門別類通知、事件處理和錯誤處理。
備註
老舊瀏覽器可能會有undefined狀況
使用標籤(Tag)做為分類通知的依據和決定新舊通知的顯示狀況
瀏覽器支援度檢查
目前支援的主流瀏覽器有Chrome(42+才能與ServiceWorker合用)、Firefox(22+)、Safari(6+)、Opera(25+)和Edge。
以下程式碼檢查瀏覽器是否支援通知,若支援則可建立通知,否則提示不支援。
if(!('Notification'inwindow)){
console.log('Thisbrowserdoesnotsupportnotification');
}
使用者授權
使用者提供的權限分為三種:「granted」(同意)、「denied」(拒絕)和「default」(未授權),其中老舊瀏覽器可能會有undefined的狀況。
請求授權
若使用者從未授權過(default)或undefined(老舊瀏覽器的未知狀態),可使用Notification.requestPermission請求使用者授權,接受通知。
if(Notification.permission==='default'||Notification.permission==='undefined'){
Notification.requestPermission(function(permission){
//permission可為「granted」(同意)、「denied」(拒絕)和「default」(未授權)
//在這裡可針對使用者的授權做處理
});
}
對使用者提出請求後,瀏覽器上方會出現對話框(RequestDialog)。
建立通知
若使用者同意授權,則可建立通知。
其中通知的title是必須的,其他都是optional。
如下範例,設定通知的title為「Hithere!」,第二個參數(在此包裝為notifyConfig)設定body(通知的內容)為「\^o^/」、icon放置圖片網址,圖片網址可為相對或絕對路徑。
一旦使用者同意授權通知,即建立一個新的通知,就會在右下角看到。
varnotifyConfig={
body:'\\^o^/',//設定內容
icon:'/images/favicon.ico',//設定icon
};
if(Notification.permission==='default'||Notification.permission==='undefined'){
Notification.requestPermission(function(permission){
if(permission==='granted'){
//使用者同意授權
varnotification=newNotification('Hithere!',notifyConfig);//建立通知
}
});
}
成功建立新通知!
標籤(Tag)
用來做為分類通知的依據和決定新舊通知的顯示狀況。
建立通知時可設定通知的標籤,若新通知的標籤已在先前出現過,新通知會關閉舊通知,只留下新通知;若沒有出現過,新舊通知會一起出現。
varnotify=newNotification(Hithere!,{
body:'\\^o^/',
icon:'/images/favicon.ico',
tag:'newArrival'//設定標籤
});
在下圖範例中,假設要建立三種通知:
第一種是沒有設定標籤的,範例中會建立1個通知。
第二種是標籤為「newArrival」,每1秒建立一次。
範例中會建立10個通知,編號0~9。
第三種是標籤為「newFeature」,每0.5秒建立一次。
範例中會建立10個通知,編號0~9。
由下圖可知,同一時間,同一種標籤只會出現一個通知。
點擊通知
設定點擊通知之後做些什麼,例如打開特定網頁。
varnotify=newNotification(Hithere!,{
body:'\\^o^/',
icon:'/images/favicon.ico'
});
notify.onclick=function(e){//綁定點擊事件
e.preventDefault();//preventthebrowserfromfocusingtheNotification'stab
window.open('http://sample.com./');//打開特定網頁
}
錯誤處理
接收錯誤事件並做處理。
notify.onerror=function(e){
//errorhandling
};
資料來源:NotificationsAPI
範例
附上露天讀書會投影片-利用JavaScript實作瀏覽器推播通知。
利用JavaScript實作瀏覽器推播通知fromHsin-HaoTang
標籤:
PushNotification
javascript
讀書會
commentspoweredbyDisqus
RecentPosts
HelloLambdaFunction
28Sep2022
精通Go程式設計-程式結構|閱讀筆記
01Sep2022
VisualTesting:忽略特定元件
17Aug2022
延伸文章資訊
- 1Notification(通知):利用JavaScript 實作瀏覽器推播通知
目前支援的主流瀏覽器有Chrome(42+ 才能與Service Worker 合用)、Firefox(22+)、Safari(6+)、Opera(25+)和Edge。 以下程式碼檢查瀏覽器是否...
- 2透過通知接收快訊- 電腦- Google Chrome說明
- 3網站通知別來亂!四步驟教你關閉Chrome 網站通知
根據預設,Chrome 會在網站、應用程式或擴充功能要求傳送通知時提示你。不過,你隨時可以變更這項設定。 當你瀏覽包含干擾性或誤導性通知的網站時,Chrome ...
- 4如何開啟Chrome瀏覽器桌面推送通知 - 樂屋網
1.按下網址列前端的鎖頭,頁面會展開一個窗視 · 2.在「通知」設定詢問(預設) 或允許的狀態,選擇好後,按下右上角X關閉 · 3.設定完成後,按下重新載入即可完成開啟推送通知.
- 5如何關閉Chrome 瀏覽器桌面推送通知?封鎖網站新訊息干擾
如何關閉Chrome 瀏覽器桌面推送通知?封鎖網站新訊息干擾 · 允許所有網站顯示通知:如果你很喜歡接收所有新訊息的話。 · 網站要求顯示通知時詢問我:預設的情況,會事先詢問 ...