什麼是 Web Notifications API?
透過 Web Notifications API 可以讓 Progressive Web App 發出系統層級的通知,搭配 service worker 背景執行的特性,就可以做到 App 的背景推播通知。
下一篇文章小編會完整開箱怎麼實作前後端的網站推播通知。
底下連結提供基本的推播示範:
https://linyencheng-push-notification.herokuapp.com/
怎麼使用 Web Notifications API?
首先網頁須被配置在 https 的環境下,再來當瀏覽器透過 API 操作到網頁本身以外的東西都需要權限,像是位置、鏡頭、麥克風、系統通知等都是。
原則上也是只要 Notification
有存在就可以要求權限並使用,另外透過 Notification.permission
可以查看目前狀態,要求權限的程式碼如下:
1 | if ("Notification" in window) { |
在已安裝的 App 中可以透過 manifest 檔案來直接增加配置,也可以開啟相關權限:
1 | { |
要求通知權限 (圖片來源: https://blog.chromium.org/)
使用上也沒有太過複雜,就是 new 一個 Notification 就完成了。
1 | const n = new Notification("哈囉!"); |
Notifications API 參數
視覺設計上主要有以下幾種參數,直接參考圖片:
通知視覺參數對照 (圖片來源: https://developers.google.com)
1 | { |
如果還是沒什麼感覺,底下有大大製作的產生器,直接試玩最快:
https://tests.peter.sh/notification-generator/
Notification Triggers
雖然目前已經有了通知的 API 但對於以時間 (time-based) 為觸發條件的事件相對還沒有那麼方便,Notification trigger 就是為了解決這個問題而出現的 API,未來也可能會有以地點為條件的觸發 API。
目前這個 API 還是實驗性的功能,需要自行從 Chrome about://flags
中開啟權限,將 #enable-experimental-web-platform-features
開啟。
1 | if ("showTrigger" in Notification.prototype) { |
教學文件中 Demo 的站台: https://notification-triggers.glitch.me/
Permission UX
一個好的時機是在用戶完成關鍵行為或轉換後才進行提示,或是透過勾選的選項來觸發。
在用戶完成關鍵行為或轉換後才透過提示手動觸發 (圖片來源: https://developers.google.com)
透過選項讓用戶手動觸發 (圖片來源: https://developers.google.com)
>
喜歡這篇文章,請幫忙拍拍手喔 🤣