browser.gcm

說明

使用 chrome.gcm,讓應用程式和擴充功能透過 Firebase 雲端通訊 (FCM) 傳送及接收訊息。

權限

gcm

屬性

MAX_MESSAGE_SIZE

訊息中所有鍵/值組合的大小上限 (以位元組為單位)。

值

4096

方法

register()

browser.gcm.register(
  senderIds: string[],
)
: Promise<string>

向 FCM 註冊應用程式。callback 會傳回註冊 ID。如果再次使用相同的 senderIds 清單呼叫 register,系統會傳回相同的註冊 ID。

參數

  • senderIds

    string[]

    允許傳送訊息至應用程式的伺服器 ID 清單。檔案應包含至少 1 個、最多 100 個寄件者 ID。

傳回

  • Promise<string>

    Chrome 116 以上版本 Chrome 148 以上版本支援 browser.*

    註冊完成後,系統會解析。

send()

browser.gcm.send(
  message: object,
)
: Promise<string>

根據內容傳送訊息。

參數

  • 訊息

    物件

    透過 FCM 傳送給另一方的訊息。

    • 資料

      物件

      要傳送至伺服器的訊息資料。不區分大小寫的 goog. 和 google,以及區分大小寫的 collapse_key,都不得做為鍵前置字串。所有鍵/值組合的總和不得超過 gcm.MAX_MESSAGE_SIZE。

    • destinationId

      字串

      Google API 控制台指派的伺服器 ID,用於傳送訊息。

    • messageId

      字串

      訊息 ID。在應用程式範圍內,每則訊息的 ID 都不得重複。如需挑選及處理 ID 的建議,請參閱雲端通訊說明文件。

    • timeToLive

      數字 選填

      訊息存留時間 (以秒為單位)。如果無法在該時間內傳送訊息,系統會引發 onSendError 事件。存留時間為 0 表示應立即傳送訊息,如果無法傳送,則會失敗。存留時間的預設值為 86,400 秒 (1 天),最大值為 2,419,200 秒 (28 天)。

傳回

  • Promise<string>

    Chrome 116 以上版本 Chrome 148 以上版本支援 browser.*

    訊息成功排入傳送佇列後,系統會解析。如果發生錯誤,系統會拒絕 Promise。

unregister()

browser.gcm.unregister(): Promise<void>

從 FCM 取消註冊應用程式。

傳回

  • 承諾<void>

    Chrome 116 以上版本 Chrome 148 以上版本支援 browser.*

    取消註冊完成後,系統會解析。如果 Promise 未拒絕,表示取消註冊成功。

事件

onMessage

browser.gcm.onMessage.addListener(
  callback: function,
)

透過 FCM 收到訊息時觸發。

參數

  • callback

    函式

    callback 參數如下:

    (message: object) => void

    • 訊息

      物件

      • collapseKey

        字串 選填

        訊息的收合鍵。詳情請參閱「不可收合和可收合訊息」。

      • 資料

        物件

        訊息資料。

      • 來自

        字串 選填

        傳送訊息的寄件者。

onMessagesDeleted

browser.gcm.onMessagesDeleted.addListener(
  callback: function,
)

當 FCM 伺服器必須刪除應用程式伺服器傳送至應用程式的訊息時,就會觸發這個事件。如要進一步瞭解如何處理這項事件,請參閱「訊息生命週期」。

參數

  • callback

    函式

    callback 參數如下:

    () => void

onSendError

browser.gcm.onSendError.addListener(
  callback: function,
)

無法將訊息傳送至 FCM 伺服器時觸發。

參數

  • callback

    函式

    callback 參數如下:

    (error: object) => void

    • 錯誤

      物件

      • 詳細資料

        物件

        錯誤的其他詳細資料 (如有)。

      • 錯誤訊息

        字串

        說明問題的錯誤訊息。

      • messageId

        字串 選填

        如果錯誤與特定訊息有關,則為該訊息的 ID。