NotificationEvent
注意:此功能仅在 Service Workers 中可用。
NotificationEvent
是 通知 API 的一个接口,它表示在 ServiceWorkerGlobalScope
(一个 ServiceWorker
)上分派的通知事件。
此接口继承自 ExtendableEvent
接口。
注意:只有在 ServiceWorkerGlobalScope
对象上触发的持久性通知事件才会实现 NotificationEvent
接口。在 Notification
对象上触发的非持久性通知事件会实现 Event
接口。
构造函数
NotificationEvent()
-
创建一个新的
NotificationEvent
对象。
实例属性
还继承了其父接口 ExtendableEvent
的属性.
NotificationEvent.notification
只读-
返回一个
Notification
对象,表示触发事件的被点击的通知。 NotificationEvent.action
只读-
返回用户点击的通知按钮的字符串 ID。如果用户点击了通知的非操作按钮部分,或通知没有按钮,则此值返回一个空字符串。
实例方法
还继承了其父接口 ExtendableEvent
的方法.
示例
js
self.addEventListener("notificationclick", (event) => {
console.log(`On notification click: ${event.notification.tag}`);
event.notification.close();
// This looks to see if the current is already open and
// focuses if it is
event.waitUntil(
clients
.matchAll({
type: "window",
})
.then((clientList) => {
for (const client of clientList) {
if (client.url === "/" && "focus" in client) return client.focus();
}
if (clients.openWindow) return clients.openWindow("/");
}),
);
});
规范
规范 |
---|
通知 API 标准 # notificationevent |
注意:此接口在 通知 API 中指定,但通过 ServiceWorkerGlobalScope
访问。
浏览器兼容性
BCD 表格仅在浏览器中加载