浏览器桌面通知功能从零实现指南
作为前端开发者,你可能见过这样的场景:打开网页版聊天工具,即使把浏览器最小化,桌面也会弹出'新消息'提醒;或者某些网站的活动通知直接显示在电脑或手机桌面上。这种功能就是「浏览器桌面通知」。
今天我们就从零开始,搞懂它、学会用它,避免踩坑。
一、先搞懂 3 个基础问题
1. 什么是浏览器桌面通知?
简单说,就是网页能在浏览器窗口外面(比如电脑桌面、手机屏幕)给你发提醒。哪怕浏览器最小化、甚至页面切到后台,只要权限允许,都能收到通知,不用一直盯着网页。
2. 什么时候会用到它?
常见场景很贴近日常:
- 网页版即时通讯的新消息提醒;
- 工作系统的审批提醒、任务到期通知;
- 电商网站的订单状态更新(比如'你的快递已发货');
- 新闻或小说网站的订阅内容更新提醒。
3. 用起来难吗?有什么限制?
不难!核心就两步:先让用户同意开启通知(申请权限),再发送通知。 关键限制要记好(避免踩坑):
- 必须在安全环境下用:网站要部署在 HTTPS 服务器上(本地开发用 localhost 可以正常测试,不用纠结 HTTPS);
- 要用户主动同意:不能偷偷发通知,必须先让用户点击'允许'才行;
- 大部分现代浏览器都支持:Chrome、Edge、Firefox、Safari(手机端也支持,部分需要特殊设置)。
二、核心概念:通知权限(最关键的一步)
浏览器为了保护用户,给通知加了'权限管理'——就像你家开门,必须经过主人同意,外人才能进。权限分 3 种状态,我们后续代码都要围绕这 3 种状态处理:
| 权限状态 | 通俗理解 | 我们能做什么 |
|---|---|---|
| 默认(default) | 用户还没选过'允许'或'拒绝' | 可以弹出弹窗,问用户要不要开启通知 |
| 允许(granted) | 用户同意开启通知了 | 直接发通知,不用再问 |
| 拒绝(denied) | 用户之前点了'不允许' | 不能再弹请求弹窗了,只能引导用户手动去浏览器设置里改 |
提示:权限是'按网站保存'的,比如你允许了'网页版微信'的通知,不代表其他网站也能发,每个网站要单独申请。
三、从零实现:2 个核心功能
我们把功能拆成两部分:① 申请通知权限 ② 发送通知。下面的代码可以直接复制到你的 HTML 文件里运行,每一行都加了注释,初学者也能看懂。
第一步:准备 HTML 基础结构
先建一个简单的 HTML 文件,包含一个'开启通知'按钮和一个'发送测试通知'按钮,方便我们测试。这里我还加了一个引导按钮,专门处理用户拒绝后的情况。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<>浏览器通知测试
浏览器通知测试
1. 开启通知权限
2. 发送测试通知
3. 重新开启通知权限(已拒绝用户点击)


