如何使用JavaScript显示桌面通知

JavaScript Notifications API使网页能够在不同平台上向其设备上的用户显示消息。即使在用户切换选项卡或移动到其他应用程序后,也会显示这些通知。

这些消息(也称为系统或桌面通知)可用于通知用户重要事件,如电子邮件,新社交媒体消息,实时聊天通知,日历提醒等。您甚至可以使用系统通知发送营销活动。

在本教程中,我将解释Notifications API的基本用法,以便在浏览器选项卡中打开网站时向用户显示消息。

API使用

Notifications API相当新,可能无法在旧版浏览器中使用。因此,在显示消息之前,您应该显式验证浏览器是否支持API。你可以通过检查是否这样做 窗口 object有一个叫做的属性 通知

如果窗口通知 {     安慰日志“浏览器不支持通知。”); } 其他 {     //在这里显示消息 } 

在支持的平台上,显示桌面通知涉及两件事:请求权限和创建要向用户显示的新通知。

请求许可

用户需要授予当前原始权限以显示桌面通知。您可以轻松检查用户是否已授予使用显示系统通知的权限 Notification.permission 属性。此属性具有以下可能值:

  • 默认 – 用户尚未决定接受来自您网站的通知
  • 理所当然 – 用户已允许您的网站显示通知
  • 否认 – 用户已选择阻止来自您网站的通知

如果是第一种情况,您可以使用来请求用户的许可 requestPermission() Notifications API的方法。它将打开一个对话框,要求用户允许或阻止来自此站点的通知。用户做出选择后,将为当前会话保存设置。

如果用户已拒绝显示通知的请求,我们无法执行任何操作。浏览器将忽略任何再次显示通知或请求权限的请求。

如果 窗口通知 {     安慰日志“浏览器不支持通知。”); } 其他 {     //检查是否已授予权限     如果 通知允许 === “理所当然” {         //在这里显示通知     } 其他 {         //请求用户的许可         通知requestPermission()。然后功能p {            如果p === “理所当然” {                //在这里显示通知            } 其他 {                安慰日志'用户屏蔽了通知。');            }         })。抓住功能 {             安慰错误);         });     } } 

requestPermission() method返回一个promise。一旦解决或拒绝承诺(用户选择通知),将调用回调函数。

显示通知

如果用户已选择接受来自我们网站的通知,您可以使用创建新的桌面通知 通知() 构造函数将其显示给用户。只需将标题传递给构造函数即可创建新通知。

VAR 通知 =  通知'嗨,您好'); 

或者,您也可以传递选项对象以指定文本方向,正文文本,要显示的图标,要播放的通知声音等。

VAR 通知 =  通知'嗨,您好' {     身体 '你好吗?'     图标 'https://bit.ly/2DYqRrh' }); 

将所有内容放在一起,我们可以创建一个函数,一旦调用就会显示桌面通知,如果尚未授予请求权限:

功能 提醒我() {     如果 窗口通知 {         安慰日志“浏览器不支持通知。”);     } 其他 {         //检查是否已授予权限         如果 通知允许 === “理所当然” {             //在这里显示通知             VAR 通知 =  通知'嗨,您好' {                 身体 '你好吗?'                 图标 'https://bit.ly/2DYqRrh'             });         } 其他 {             //请求用户的许可             通知requestPermission()。然后功能 p {                 如果 p === “理所当然” {                     //在这里显示通知                     VAR 通知 =  通知'嗨,您好' {                         身体 '你好吗?'                         图标 'https://bit.ly/2DYqRrh'                     });                 } 其他 {                     安慰日志'用户屏蔽了通知。');                 }             })。抓住功能  {                 安慰错误);             });         }     } } 

现在我们可以在用户点击按钮时调用上面的函数:

<按钮 的onclick =“提醒我()”>提醒我 

或者,您可以将上述函数绑定到body 负载 一旦网页完全加载就会调用的事件:

  <体 的onload =“提醒我()”>    

喜欢这篇文章?在Twitter上关注@attacomsian。你也可以在LinkedIn和DEV上关注我。

这篇文章最初发表在attacomsian.com/blog上。

资讯来源:由0x资讯编译自DEV,原文:https://dev.to/attacomsian/how-to-show-desktop-notifications-using-javascript-5aco ,版权归作者所有,未经许可,不得转载
你可能还喜欢