js实现推送
实现 Web 推送通知的方法
使用 JavaScript 实现推送通知主要依赖浏览器的 Push API 和 Notification API。以下是具体实现步骤:
注册 Service Worker
Service Worker 是推送通知的核心,用于在后台接收推送消息。
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/service-worker.js')
.then(registration => {
console.log('ServiceWorker 注册成功');
});
}
请求用户授权
需要用户授权才能显示通知。
Notification.requestPermission().then(permission => {
if (permission === 'granted') {
console.log('用户已授权通知');
}
});
订阅推送服务
通过 PushManager 订阅推送服务,获取推送订阅对象。
navigator.serviceWorker.ready.then(registration => {
return registration.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: '你的应用服务器公钥'
});
}).then(subscription => {
console.log('推送订阅成功:', subscription);
});
发送推送消息
服务器通过 Web Push 协议向推送服务发送消息,Service Worker 接收并显示通知。
self.addEventListener('push', event => {
const payload = event.data.json();
event.waitUntil(
self.registration.showNotification(payload.title, {
body: payload.body,
icon: 'icon.png'
})
);
});
处理通知点击事件
用户可以点击通知触发特定动作。

self.addEventListener('notificationclick', event => {
event.notification.close();
event.waitUntil(
clients.openWindow('https://example.com')
);
});
注意事项
- HTTPS 要求:推送通知仅在 HTTPS 或 localhost 环境下可用。
- 浏览器兼容性:检查 Push API 和 Notification API 的浏览器支持情况。
- 服务器配置:需配置应用服务器公钥(VAPID 密钥)以验证推送请求。
通过以上步骤,可以实现基本的 Web 推送通知功能。






