我使用此代码将桌面通知推送到客户端:
// Let's check if the browser supports notifications
if (!("Notification" in window)) {
toast(type, title, body);
}
// Let's check whether notification permissions have already been granted
else if (Notification.permission === "granted") {
// If it's okay let's create a notification
var notification = new Notification(title, options);
}
// Otherwise, we need to ask the user for permission
else if (Notification.permission !== 'denied') {
Notification.requestPermission(function (permission) {
// If the user accepts, let's create a notification
if (permission === "granted") {
var notification = new Notification(title, options);
} else {
// toast(type, title, body);
}
});
}
问题是,当通知设置设置为Allowed
或Default (Ask)
时,浏览器不会向客户显示通知,也不会要求许可。
无论上述代码如何,当我在Chrome开发者工具控制台中输入Notification.permission
时,denined
(同时设置为Allowed
)
chrome版本是63.x.
答案 0 :(得分:0)
一旦您拒绝通知,您就不会立即再次收到提示。这是为了防止网站向用户发送垃圾邮件。
这可能是测试期间的问题。幸运的是,如果您打开Chrome的通知设置,则可以删除该条目,这样您就可以访问首次访问者流程。通知设置会不时移动,因此您可能不得不四处寻找。我安装的版本是Chrome 60,其通知设置位于chrome:// settings / content / notifications。