Notification.requestPermission()
.then((permission) => {
console.log('User responded to permission request:', permission);
});
????????"granted"值意味着用户明确授权了显示通知的权限。除此之外的其他值意味着显示通知会静默失 败。如果用户拒绝授权,这个值就是
"denied"。一旦拒绝,就无法通过编程方式挽回,因为不可能再 触发授权提示。
- 显示和隐藏通知
????????Notification 构造函数用于创建和显示通知。最简单的通知形式是只显示一个标题,这个标题内容可以作为第一个参数传给
Notification
构造函数。以下面这种方式调用
Notification
,应该会
立即显示通知:
new Notification('Title text!');
可以通过
options
参数对通知进行自定义,包括设置通知的主体、图片和振动等:
new Notification('Title text!', {
body: 'Body text!',
image: 'path/to/image.png',
vibrate: true
});
????????调用这个构造函数返回的 Notification
对象的
close()
方法可以关闭显示的通知。下面的例子
展示了显示通知后
1000
毫秒再关闭它:
const n = new Notification('I will close in 1000ms');
setTimeout(() => n.close(), 1000);
通知生命周期回调
通知并非只用于显示文本字符串,也可用于实现交互。
Notifications API
提供了
4 个用于添加回调的生命周期方法:
?
onshow
在通知显示时触发;
?
onclick
在通知被点击时触发;
?
onclose
在通知消失或通过
close()
关闭时触发;
?
onerror
在发生错误阻止通知显示时触发。
下面的代码将每个生命周期事件都通过日志打印了出来:
const n = new Notification('foo');
n.onshow = () => console.log('Notification was shown!');
n.onclick = () => console.log('Notification was clicked!');
n.onclose = () => console.log('Notification was closed!');
n.onerror = () => console.log('Notification experienced an error!');