JavaScript 实现浏览器桌面通知:权限管理与推送详解

作者:竹影

时间:2026-10-22

浏览:69

本文详细介绍如何利用 JavaScript 的 Notification API 实现浏览器桌面推送提醒。内容涵盖请求与查看推送权限的方法,包括使用 requestPermission 获取用户授权及检查 permission 状态。同时解析 Notification 构造函数参数,如标题、body、tag、icon 及 requireInteraction 等属性,并演示如何监听点击事件及处理移动端兼容性问题。

文章目录

本文旨在通过简短的阅读时间,帮助开发者快速掌握为网站添加浏览器推送提醒功能的方法。

Notification 类与权限管理

Notification 类

该类的核心职责是负责消息推送。只要用户未关闭页面,即使正在使用其他应用程序,浏览器也能将消息推送给用户。

请求权限

类似于手机应用接收推送前需开放权限,浏览器在使用推送功能前也必须先获取用户的授权许可。


Notification.requestPermission().then(permission => {
  console.log(permission)
})

可以通过 requestPermission 方法为当前域名申请消息推送权限。该方法支持使用 Promise 语法处理请求结果,同时也支持使用回调函数方式实现。

回调参数 permission 表示用户的选择结果,其值分别为 granted(允许)或 denied(拒绝)。当检测到用户拒绝推送时,应在回调中进行相应提示,告知用户这可能导致无法及时接收消息,并指导用户如何开启权限以正常接收推送。

查看权限

由于推送权限是基于域名的,网站在首次请求权限后,后续访问将直接沿用用户的首次选择,不再重复请求。

因此,我们需要获取当前网站的推送状态,可通过以下属性来查询:


Notification.permission

permission 属性包含三种值:granted 表示允许推送;denied 表示拒绝推送;default 表示尚未申请权限。

当值为 default 时,即可向用户发起推送权限请求。

推送消息的创建与配置

发起一条推送


const note = new Notification (title, opts)

通过上述方式可以创建一条推送消息。该构造函数的第一个参数为消息标题,是必填项;第二个参数为可选对象,用于实现更多自定义显示内容:

第二个参数接收一个对象,包含以下属性:

  1. body:推送的主体内容。
  2. tag:推送标识。若声明多个 Notification 且 tag 相同,则只会显示一次推送。
  3. icon:需要在推送中显示的图标 URL。
  4. data:推送消息携带的数据信息。当用户点击推送窗口时,可利用这些数据显示相应内容。
  5. requireInteraction:默认情况下,推送发出后若用户无操作,几秒后会自动消失。将该属性设为 true 可使推送始终显示而不消失,默认值为 false。

如需自定义推送显示时长,可通过关闭自动消失属性,并配合 note.close() 和 setTimeout 方法手动控制推送的持续时间。

推送点击事件监听

点击推送事件

成功发起推送后,可通过 onclick 属性监听用户是否点击了该推送。


note.onclick = () => {
  //在这里实现用户点击后的逻辑
}

兼容性与移动端限制

其他注意事项

需注意,并非所有浏览器都支持 Notification 功能,因此在使用前应先检测浏览器的兼容性。

或许有的小伙伴会想,这个功能不错,这样在手机上也能实现网页消息推送了。然而很不幸的是,移动端浏览器几乎100%不支持 Notification :(

以上为本文全部内容,希望对读者有所帮助,欢迎继续支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章