为什么 Notification.requestPermission() 在某些浏览器里不弹窗?
我最近在做一个消息提醒功能,调用 Notification 权限请求时,发现有时候根本不会弹出授权提示框,特别是在 Chrome 里。本地开发环境(localhost)可以正常弹窗,但部署到 HTTPS 测试环境后就不行了,控制台也没报错。
我试过检查是否已经授过权,也确认页面是通过 HTTPS 访问的,但还是没效果。这是我的调用代码:
Notification.requestPermission().then(permission => {
if (permission === 'granted') {
console.log('通知权限已允许');
} else {
console.log('用户拒绝了通知权限');
}
});
在请求前先检查状态:
如果是 'denied',用户必须手动去浏览器设置里改回来,代码层面没法再弹窗了。去浏览器设置里清除该站点的通知权限,或者换个浏览器试试。