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


