我有一个弹出模式,首先询问用户是否想要接收特别优惠,如果他们点击是,那么我会提取推送通知的代码,以便他们可以允许通知。如果他们已经允许通知我不想弹出模态。我正在寻找一种方法,使用谷歌浏览器检查用户是否已经允许通知。
答案 0 :(得分:13)
检查通知对象的permission
属性:
if (Notification.permission !== "granted") {
// ask for permission
答案 1 :(得分:2)
Notification.permission
旁边的function handlePermission() {
return navigator.permissions
.query({name:'notifications'})
.then(permissionQuery)
.catch(permissionError);
}
function permissionQuery(result) {
console.debug({result});
var newPrompt;
if (result.state == 'granted') {
// notifications allowed, go wild
} else if (result.state == 'prompt') {
// we can ask the user
newPrompt = Notification.requestPermission();
} else if (result.state == 'denied') {
// notifications were disabled
}
result.onchange = () => console.debug({updatedPermission: result});
return newPrompt || result;
}
////
handlePermission();
旁边有较新的,不太受支持但更为一般的Denys Séguret
以下是基于Permissions API.
的快速使用示例background-color:rgba(255, 255, 255, 0.5);