PushEvent

Baseline 已廣泛支援

此功能已成熟,並可在許多裝置和瀏覽器版本上執行。自 2023 年 3 月以來,它已在各種瀏覽器中可用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

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

PushEvent 介面屬於 Push API,表示已接收到的推送訊息。此事件被髮送到 ServiceWorker全域性作用域。它包含從應用伺服器傳送到 PushSubscription 的資訊。

Event ExtendableEvent PushEvent

建構函式

PushEvent()

建立一個新的 PushEvent 物件。

例項屬性

繼承自其父級 ExtendableEvent 的屬性。附加屬性

PushEvent.data 只讀

返回一個對 PushMessageData 物件的引用,該物件包含傳送給 PushSubscription 的資料。

例項方法

繼承自其父級 ExtendableEvent 的方法.

示例

以下示例從 PushEvent 中獲取資料並將其顯示在服務工作執行緒的所有客戶端上。

js
self.addEventListener("push", (event) => {
  if (!(self.Notification && self.Notification.permission === "granted")) {
    return;
  }

  const data = event.data?.json() ?? {};
  const title = data.title || "Something Has Happened";
  const message =
    data.message || "Here's something you might want to check out.";
  const icon = "images/new-notification.png";

  const notification = new self.Notification(title, {
    body: message,
    tag: "simple-push-demo-notification",
    icon,
  });

  notification.addEventListener("click", () => {
    clients.openWindow(
      "https://example.blog.com/2015/03/04/something-new.html",
    );
  });
});

規範

規範
推送 API
# pushevent-interface

瀏覽器相容性

另見