如何检查用户是否已在Google Chrome中允许通知?

时间:2016-06-22 16:12:16

标签: javascript google-chrome push-notification notifications service-worker

我有一个弹出模式,首先询问用户是否想要接收特别优惠,如果他们点击是,那么我会提取推送通知的代码,以便他们可以允许通知。如果他们已经允许通知我不想弹出模态。我正在寻找一种方法,使用谷歌浏览器检查用户是否已经允许通知。

2 个答案:

答案 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);