NotificationEvent

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2023.

* Some parts of this feature may have varying levels of support.

Note: This feature is only available in Service Workers.

Giao diện NotificationEvent của Notifications API đại diện cho sự kiện thông báo được gửi trên ServiceWorkerGlobalScope của một ServiceWorker.

Giao diện này kế thừa từ giao diện ExtendableEvent.

Note: Chỉ các sự kiện thông báo liên tục, được kích hoạt tại đối tượng ServiceWorkerGlobalScope, mới triển khai giao diện NotificationEvent. Các sự kiện thông báo không liên tục, được kích hoạt tại đối tượng Notification, triển khai giao diện Event.

Event ExtendableEvent NotificationEvent

Hàm khởi tạo

NotificationEvent()

Tạo một đối tượng NotificationEvent mới.

Thuộc tính phiên bản

Cũng kế thừa các thuộc tính từ giao diện cha, ExtendableEvent.

NotificationEvent.notification Read only

Trả về một đối tượng Notification đại diện cho thông báo đã được nhấp để kích hoạt sự kiện.

NotificationEvent.action Read only

Trả về ID chuỗi của nút thông báo mà người dùng đã nhấp. Giá trị này trả về chuỗi rỗng nếu người dùng đã nhấp vào thông báo ở nơi khác ngoài nút hành động, hoặc nếu thông báo không có nút.

Phương thức phiên bản

Cũng kế thừa các phương thức từ giao diện cha, ExtendableEvent.

Ví dụ

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("/");
      }),
  );
});

Thông số kỹ thuật

Specification
Notifications API
# notificationevent

Note: Giao diện này được chỉ định trong Notifications API, nhưng được truy cập thông qua ServiceWorkerGlobalScope.

Tương thích trình duyệt