瀏覽器通知的快速實現(xiàn)

HTML5 中的 JavaScript Web Notification API 允許桌面和移動瀏覽器顯示包含自定義內(nèi)容的通知隘冲。JavaScript Web Notification API 現(xiàn)在與大多數(shù)現(xiàn)代瀏覽器兼容践叠,我們已經(jīng)看到它在許多網(wǎng)站和應(yīng)用程序中實現(xiàn)。

在本文中荒澡,我們將向您展示使用開源 Push.js 庫設(shè)置瀏覽器通知的最快方法。

實現(xiàn)思路

我們想要構(gòu)建一個簡單的演示應(yīng)用程序官紫,要求獲得權(quán)限驼鹅,然后在按鈕點擊時發(fā)送通知。為簡單起見纽门,我們將使用內(nèi)聯(lián)腳本在單個 index.html 文件中工作重绷。

我們需要做的第一件事就是引用庫。Push.js 可以通過 npm 或本地文件安裝膜毁,但實現(xiàn)它的最簡單方法是通過 CDN :

<script src="https://cdnjs.cloudflare.com/ajax/libs/push.js/0.0.11/push.min.js"></script>

Push.js 庫不是使用 Web Notifications 所必需的,但它提供了一個干凈的 API 愤钾,與本機 Notification API 相比瘟滨,它更容易使用。Push.js 會處理權(quán)限問題能颁,服務(wù)工作者和跨瀏覽器的不一致性等問題杂瘸,因此我們可以省掉很多不必要的麻煩。

獲取用戶許可

用戶需要先授予權(quán)限才能發(fā)送通知伙菊。

申請獲取權(quán)限

當(dāng)我們嘗試發(fā)送第一個通知時败玉,Push.js 會自動請求權(quán)限。但是镜硕,在許多情況下运翼,我們希望事先手動詢問用戶:

Push.Permission.request();

這將打開內(nèi)置瀏覽器對話框,提示用戶接受或拒絕接收通知兴枯。如果已授予或拒絕權(quán)限血淌,則將忽略上述代碼。

創(chuàng)建通知

要顯示通知,我們只需調(diào)用 Push.create 方法悠夯,該方法需要一個標(biāo)題和一個包含各種有用首選項和回調(diào)的可選對象:

// 開始調(diào)用 Push.create 方法癌淮, Hello world! 是通知的標(biāo)題
Push.create("Hello world!", {
    // body 選項是通知的內(nèi)容
    body: "How's it hangin'?",
    // icon 選項是通知的圖片
    icon: './icon.png',
    // timeout 選項是通知停留時間
    timeout: 4000
});

下面的演示中,我給一個按鈕綁定了上面的方法沦补,只要點擊按鈕就可以彈出通知窗口乳蓄。

注意,通知顯示在電腦屏幕的右下角
完整代碼
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Push.js</title>
</head>
<body>
    <button id="demo-button">點擊測試</button>
    <script src="https://cdn.bootcss.com/push.js/1.0.5/push.js"></script>
    <script>
        var button = document.getElementById("demo-button");
        Push.Permission.request();
        button.onclick = function () {
            Push.create("Hello world!", {
                body: "How's it hangin'?",
                icon: './icon.png',
                timeout: 4000
            });
        };
    </script>
</body>
</html>

在這里可以看到所有可用選項:

https://pushjs.org/docs/options

確保不要打擾用戶太多夕膀。僅當(dāng)想要更新重要內(nèi)容(如新短信或新朋友請求)時才發(fā)送通知虚倒。

瀏覽器兼容性

大多數(shù)現(xiàn)代瀏覽器都支持 Notification API。

要查看您選擇的瀏覽器是否支持它店诗,請嘗試運行我們的演示應(yīng)用程序裹刮。

它應(yīng)該在桌面 Chrome,F(xiàn)irefox 和 Safari 以及 Chrome for Android 中沒有問題庞瘸。

此列表中唯一缺少的流行客戶端是 iOS Safari捧弃,它不提供任何形式的 Web 通知。

另一個需要注意的重要事項是擦囊,為了在 Android 中顯示通知违霞,Web 應(yīng)用程序需要通過 HTTPS 托管。

進(jìn)一步了解

通知是瀏覽器世界的一個相對較新的補充瞬场,但我們可以期待看到越來越多买鸽,特別是當(dāng) Progressive Web Apps 變得更受歡迎時。如果您想了解有關(guān) JavaScript 通知的更多信息贯被,建議可以查看以下資源:

Push.js 的創(chuàng)建者的博客文章眼五,討論他創(chuàng)建項目的原因以及他未來的計劃。

Push API - 一個新的 API彤灶,允許用戶即使在 Web 應(yīng)用程序未打開時也能收到通知看幼。

https://developer.mozilla.org/zh-CN/docs/Web/API/Push_API

如何發(fā)一個好的通知?- Google Developers 有關(guān)如何更好地發(fā)布通知的文章幌陕。

https://developers.google.com/web/fundamentals/push-notifications/common-notification-patterns

希望分享的內(nèi)容對大家有幫助诵姜,也可以分享給你們的小伙伴,感謝你們的關(guān)注與支持搏熄。

點個關(guān)注棚唆,就是一份支持。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末心例,一起剝皮案震驚了整個濱河市宵凌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌止后,老刑警劉巖摆寄,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡微饥,警方通過查閱死者的電腦和手機逗扒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來欠橘,“玉大人矩肩,你說我怎么就攤上這事∷嘈” “怎么了黍檩?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長始锚。 經(jīng)常有香客問我刽酱,道長,這世上最難降的妖魔是什么瞧捌? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任棵里,我火速辦了婚禮,結(jié)果婚禮上姐呐,老公的妹妹穿的比我還像新娘殿怜。我一直安慰自己,他們只是感情好曙砂,可當(dāng)我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布头谜。 她就那樣靜靜地躺著,像睡著了一般鸠澈。 火紅的嫁衣襯著肌膚如雪柱告。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天笑陈,我揣著相機與錄音末荐,去河邊找鬼。 笑死新锈,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的眶熬。 我是一名探鬼主播妹笆,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼娜氏!你這毒婦竟也來了拳缠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤贸弥,失蹤者是張志新(化名)和其女友劉穎窟坐,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡哲鸳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年臣疑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片徙菠。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡讯沈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出婿奔,到底是詐尸還是另有隱情缺狠,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布萍摊,位于F島的核電站挤茄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏冰木。R本人自食惡果不足惜穷劈,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望片酝。 院中可真熱鬧囚衔,春花似錦、人聲如沸雕沿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽审轮。三九已至肥哎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疾渣,已是汗流浹背篡诽。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留榴捡,地道東北人杈女。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像吊圾,于是被迫代替她去往敵國和親达椰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1项乒、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,982評論 3 119
  • 自己從記事到現(xiàn)在快三十年了啰劲,從童年回憶到長大記憶~在到現(xiàn)在的自己~感覺自己去不了心的地方好多,比如一起長大的兄弟姐...
    李天樂閱讀 214評論 0 0
  • 內(nèi)容推薦的思考 今天在思考電子書產(chǎn)品的推薦.內(nèi)容推薦對于很多內(nèi)容型產(chǎn)品來說都比較重要,如果內(nèi)容沒有辦法博得用戶的興...
    冰紅茶加冰閱讀 261評論 0 0
  • 原作者:Paul Jarvis 譯者:勵定洲 社交媒體的出現(xiàn)讓主觀信息充斥其中形成了不停的信息流檀何。這意味著我們可以...
    定Ding閱讀 2,119評論 2 23
  • 愛的贊頌——寫給半歲的小包子。 01. 等待 2015.6 心血來潮地栓辜,爸爸麻麻去了趟潭柘寺恋拍。麻麻許了愿,希望寶寶...
    濤柒濤柒閱讀 921評論 12 8