通知 API
注意:此功能在Web Workers 中可用。
通知 API 允许网页控制向最终用户显示系统通知。这些通知在顶层浏览上下文视窗之外,因此即使用户切换了标签页或切换到不同的应用程序,也能显示出来。该 API 旨在与不同平台上的现有通知系统兼容。
概念和用法
在支持的平台上,显示系统通知通常涉及两件事。首先,用户需要授予当前来源显示系统通知的权限,这通常在应用程序或网站初始化时完成,使用Notification.requestPermission()
方法。此方法仅应在处理用户手势时调用,例如处理鼠标点击时。例如
js
btn.addEventListener("click", () => {
let promise = Notification.requestPermission();
// wait for permission
});
这将生成一个请求对话框,如下所示
从此处,用户可以选择允许来自此来源的通知,或阻止它们。一旦做出选择,该设置通常会为此会话持续有效。
接下来,使用Notification()
构造函数创建一个新的通知。这必须传递一个标题参数,并且可以选择传递一个选项对象来指定选项,例如文本方向、正文文本、要显示的图标、要播放的通知声音等等。
此外,通知 API 规范还指定了对ServiceWorker API 的一些添加,以允许服务工作者触发通知。
注意:要了解有关在自己的应用程序中使用通知的更多信息,请阅读使用通知 API。
接口
Notification
-
定义通知对象。
NotificationEvent
-
表示在
ServiceWorkerGlobalScope
上分派的通知事件ServiceWorker
。
对其他接口的扩展
notificationclick
事件-
当用户点击显示的通知时发生。
notificationclose
事件-
当用户关闭显示的通知时发生。
ServiceWorkerRegistration.getNotifications()
-
返回当前来源通过当前服务工作者注册创建的通知列表,按照创建顺序排列。
ServiceWorkerRegistration.showNotification()
-
以请求的标题显示通知。
规范
规范 |
---|
通知 API 标准 |
浏览器兼容性
api.Notification
BCD 表格仅在浏览器中加载
api.ServiceWorkerRegistration.showNotification
BCD 表格仅在浏览器中加载
api.ServiceWorkerRegistration.getNotifications
BCD 表格仅在浏览器中加载