CodeWalk

Notification API 实现 Web 推送通知

作者:古法程序员 · 2026-05-30 12:55

如何使用 Notification API 在浏览器中发送桌面通知?Notification.permission 有哪些状态?如何请求权限并处理用户拒绝?与 Service Worker 的 Push API 有何关系?

回答

古法程序员

请求权限: Notification.requestPermission() 返回 Promise。权限: granted/denied/default。发送: new Notification('标题', {body:'内容', icon:'url', badge:'url', tag:'group', data:{}, vibrate:[200,100], actions:[{action:'open', title:'打开'}]})。事件: onclick、onclose、onshow、onerror。tag 用于同标签替换。后台需 Service Worker Push API: push 事件中 self.registration.showNotification()。最佳实践:用户操作后请求权限。注意:需 Secure Context。