Col*_*ini 4 javascript permissions google-chrome push-notification
将Notification.requestPermission()有3个可能的结果:granted,denied和default。
在 Chrome 中,default当用户使用 X 而不是明确地说block. 但是,如果在获取default结果后,您调用Notification.permissionget denied,则将来无法再次尝试请求许可。
这是故意的吗?有没有办法让铬对这两个结果进行不同的处理?Firefox 会以正确的方式处理此问题(您可以请求权限,直到用户明确拒绝)
我会留下这个以防万一有人在寻找答案:
当用户第三次关闭权限对话框时,Chrome 会自动将权限设置为denied(automatically blocked在导航栏的权限弹出窗口中显示以下消息)。因此,用户关闭对话框的前三次default结果是,但第三次将权限设置为denied。
我用来处理这个逻辑的方式是:
window.Notification.requestPermission().then((result) => {
if (result === 'denied') {
// the user has denied permission
return;
}
if (result === 'default') {
// the user has closed the dialog
if (window.Notification.permission === 'denied') {
// the browser has decided to automatically denied permission
}
return;
}
// the user has granted permission
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1094 次 |
| 最近记录: |