PushMessageData

Baseline 廣泛可用 *

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

* 此特性的某些部分可能存在不同級別的支援。

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

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

PushMessageData 介面屬於 Push API,它提供了一些方法,允許你以各種格式檢索伺服器傳送的推送資料。

Fetch API 中類似的方法不同,Fetch API 的方法只能呼叫一次,而這些方法可以多次呼叫。

透過 Push API 接收的訊息由推送服務加密傳送,然後由瀏覽器自動解密,之後才能透過 PushMessageData 介面的方法進行訪問。

例項屬性

無。

例項方法

PushMessageData.arrayBuffer()

將資料提取為 ArrayBuffer 物件。

PushMessageData.blob()

將資料提取為 Blob 物件。

PushMessageData.bytes()

將資料提取為 Uint8Array 物件。

PushMessageData.json()

將資料提取為 JSON 物件。

PushMessageData.text()

將資料提取為純文字字串。

示例

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

  if (obj.action === "subscribe" || obj.action === "unsubscribe") {
    fireNotification(obj, event);
    port.postMessage(obj);
  } else if (obj.action === "init" || obj.action === "chatMsg") {
    port.postMessage(obj);
  }
});

規範

規範
推送 API
# pushmessagedata-interface

瀏覽器相容性