我想为此函数添加一个回调:"BLOCK"
。问题是我不知道什么时候它(这个函数)会被触发,因此我认为我必须在点击或类似的东西上绑定浏览器通知权限框,以实现每次用户点击"X"(close)
,if (result === 'denied')
{
console.log('Permission wasn\'t granted. Allow a retry.');
return;
}
if (result === 'default')
{
console.log('The permission request was dismissed.');
return;
}
if (result === 'accepted')
{
console.log('The permission request was accepted.');
return;
}
或Notification.requestPermission()
javascript文件找出点击的按钮,并执行以下操作:
Permission
我的问题是我不知道它是如何绑定到如下所示的浏览器通知权限框↓
我不想调用权限提示,即{{1}}功能。我只想检测何时更改了{{1}}并对该结果做了一些事情。
答案 0 :(得分:1)
您通常会在页面加载时请求权限。 使用jquery,您可以执行类似
的操作jQuery(document).ready(function() {
if (!("Notification" in window)) {
console.log("This browser does not support desktop notification");
} else if (Notification.permission !== 'denied') {
Notification.requestPermission(function(permission) {
if (!('permission' in Notification)) {
Notification.permission = permission;
}
});
}
});
答案 1 :(得分:0)
soo,我不完全确定,如果我理解你的话,但我认为你不需要将你的东西绑定到通知权限框。
根据MDN,有两种方法可以做到这一点:使用promises
:
Notification.requestPermission().then(function(permission) { ... });
或callback
Notification.requestPermission(callback);
我认为对于如何获取权限值的承诺更为明显,但如果您使用“正常”回调,则可以将代码包装到函数中并检查权限参数:
function doStuff(result){
if (result === 'denied')
{
console.log('Permission wasn\'t granted. Allow a retry.');
return;
}
if (result === 'default')
{
console.log('The permission request was dismissed.');
return;
}
if (result === 'accepted')
{
console.log('The permission request was accepted.');
return;
}
}
然后致电:
Notification.requestPermission(doStuff(permission));
然后可能将结果保存在全局var中(我不知道你想用它做什么,所以是的)
答案 2 :(得分:0)
我正在寻找相同的东西,我在这里找到了这个答案: How to listen for web notification permission change
我认为这就是您要寻找的。它对我有用。