通知 API

安全上下文:此功能仅在安全上下文 (HTTPS) 中可用,在某些或所有支持的浏览器 中可用。

注意:此功能在Web Workers 中可用。

通知 API 允许网页控制向最终用户显示系统通知。这些通知在顶层浏览上下文视窗之外,因此即使用户切换了标签页或切换到不同的应用程序,也能显示出来。该 API 旨在与不同平台上的现有通知系统兼容。

概念和用法

在支持的平台上,显示系统通知通常涉及两件事。首先,用户需要授予当前来源显示系统通知的权限,这通常在应用程序或网站初始化时完成,使用Notification.requestPermission()方法。此方法仅应在处理用户手势时调用,例如处理鼠标点击时。例如

js
btn.addEventListener("click", () => {
  let promise = Notification.requestPermission();
  // wait for permission
});

这将生成一个请求对话框,如下所示

A dialog box asking the user to allow notifications from that origin. There are options to never allow or allow notifications.

从此处,用户可以选择允许来自此来源的通知,或阻止它们。一旦做出选择,该设置通常会为此会话持续有效。

接下来,使用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 表格仅在浏览器中加载

另请参阅