您可以使用 chrome.gcm 向使用者傳送及接收訊息。由於這項功能是建構在 Firebase 雲端通訊 (FCM) 之上,因此需要您設定外部服務。本操作說明將逐步說明所有必要步驟,讓您在擴充功能中啟用這項功能。
雖然 chrome.gcm
仍受支援,但這項功能是在 Push 標準推出之前,十多年前建立的。一般來說,建議您一律使用網路標準,而非擴充功能專屬 API。除非您有特定需求需要使用 chrome.gcm
,否則建議使用 Push。
必要條件
如要使用 chrome.gcm
,您必須設定 Firebase 帳戶。

建立帳戶後,請開啟 Firebase 控制台,然後選取要使用的現有專案,或為擴充功能建立新專案。

接著前往 Cloud Messaging 的設定頁面。

如果您已在這項專案中已有雲端通訊帳戶,想要複製所列的數字寄件者 ID。
如果您尚未啟用雲端訊息傳送服務,請為 Google Cloud 中的專案啟用 Firebase Cloud Messaging API。在下圖中,您可以看到 Firebase 設定中直接連至此頁面的連結。

啟用後,請返回 Cloud Messaging 的設定頁面,並複製寄件者 ID。
設定 chrome.gcm
您現在已從 Firebase 取得傳送者 ID,可以設定擴充功能來接收訊息。首先,請確認您已將 gcm
權限新增至擴充功能的 manifest.json
{
"manifest_version": 3,
...
"permissions": ["gcm"]
您現在可以存取 chrome.gcm
API。您可以呼叫 chrome.gcm.register
註冊以便接收推播訊息
監聽訊息
擴充功能註冊了寄件者 ID 後,您必須加入程式碼來處理傳入的訊息。
不使用 Firebase 的 Firebase
雖然 chrome.gcm
一律會經過 Firebase,但 Firebase 可設定為充當外部推播訊息供應商的 Proxy。通常供應商會明確列出對 Chrome 擴充功能的支援,但支援 Firebase 舊版推播通知的供應商應該就能正常運作。如果您的供應商支援 Firebase 的舊版推播通知,請試試看。如果遇到問題,供應商支援團隊應該可以說明可能適用的限制。
關於管道和主題
chrome.gcm
使用的是舊版 Firebase Messaging API。這一點非常重要,因為舊版 API 不支援訊息管道。每則推送的訊息都會傳送至每個用戶端。如果使用者的擴充功能只對部分訊息感興趣,您必須自行篩選。
雖然 Firebase 一開始是免費帳戶,但只要超過特定用量門檻,系統就會向你收費。如果您打算向特定群組傳送訊息,用戶端篩選最終的費用可能會超出所需範圍。您可以建立多個專案來複製個別管道,以解決這個問題 (每個管道一個專案和一個寄件者 ID)。任何擴充內容都可以註冊多個寄件者 ID,最多 100 個。
或者,如果您需要管道支援,或是想在不經過 Firebase 的情況下使用推播通知,可以使用 Push API。