
JavaScript 实现推送通知主要依赖两个核心机制:浏览器原生的 Notification API(用于显示本地通知)和 Push API + Service Worker(用于接收服务器发起的后台推送)。很多人混淆二者,这里先明确:Notification API 本身不收消息,只负责“显示”;真正实现远程推送必须配合 Push API 和后台服务。
这是推送功能的第一步,必须获得用户明确授权才能显示通知:
Notification.requestPermission() 弹出浏览器权限请求框(仅在用户交互后如点击按钮中调用才有效)"granted",只有授权成功才能创建通知new Notification(title, options) 创建并显示通知,支持图标、正文、声音(需用户设置)、重定向链接等示例代码:
document.getElementById('notify-btn').onclick = async () => {
const permission = await Notification.requestPermission();
if (permission === 'granted') {
new Notification('你好!', {
body: '这是一条前端触发的通知',
icon: '/icon.png',
tag: 'welcome'
});
}
};要让页面关闭后也能收到通知,必须走 Push 流程:
立即学习“Java免费学习笔记(深入)”;
navigator.serviceWorker.ready 获取 registration 对象registration.pushManager.subscribe() 向浏览器推送服务申请订阅,生成唯一的 PushSubscription(含 endpoint、keys 等)web-push 库)向 endpoint 发送加密消息,浏览器收到后自动唤醒 Service Workerpush 事件监听器中调用 self.registration.showNotification() 显示通知这是关键一环,纯前端无法绕过:
sw.js)需监听 push 事件showNotification() 并传入标题、选项(可含 data、actions、badge 等)notificationclick 事件,实现点击跳转逻辑简例(sw.js):
self.addEventListener('push', event => {
const data = event.data?.json() || { title: '新消息' };
const options = {
body: data.body || '',
icon: data.icon || '/icon-192.png',
badge: '/badge.png',
data: { url: data.url || '/' }
};
event.waitUntil(self.registration.showNotification(data.title, options));
});
self.addEventListener('notificationclick', event => {
event.notification.close();
event.waitUntil(
clients.openWindow(event.notification.data.url)
);
});Notification.permission
以上就是javascript如何实现推送通知_Notification API的使用流程是什么?的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号