ServiceWorkerGlobalScope: push 事件

Baseline 已廣泛支援

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

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

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

當 service worker 接收到推送訊息時,會將 push 事件傳送到 service worker 的全域性作用域(由 ServiceWorkerGlobalScope 介面表示)。

此事件不可取消,也不會冒泡。

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

js
addEventListener("push", (event) => { })

onpush = (event) => { }

事件型別

一個 PushEvent。繼承自 Event

Event ExtendableEvent PushEvent

事件屬性

繼承其父級 ExtendableEvent 的屬性。其他屬性

PushEvent.data 只讀

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

示例

此示例設定了一個 push 事件的處理程式,該處理程式接收 JSON 資料,解析它,並根據訊息中包含的資訊分派訊息以進行處理。

js
self.addEventListener("push", (event) => {
  let message = event.data.json();

  switch (message.type) {
    case "init":
      doInit();
      break;
    case "shutdown":
      doShutdown();
      break;
  }
});

規範

規範
推送 API
# 對 serviceworkerglobalscope 介面的擴充套件
推送 API
# dom-serviceworkerglobalscope-onpush

瀏覽器相容性

另見