你可以使用 browser.gcm 傳送及接收訊息。由於這項功能是以 Firebase 雲端通訊 (FCM) 為基礎建構而成,因此需要設定外部服務。本操作說明會逐步說明所有必要步驟,讓擴充功能正常運作。
雖然 browser.gcm 仍受支援,但這是十多年前在 Push 標準推出前建立的。一般來說,建議一律使用網路標準,而非擴充功能專屬的 API。除非有特定需求,否則建議使用 Push,而非 browser.gcm。
必要條件
如要使用 browser.gcm,請先設定 Firebase 帳戶。
建立帳戶後,請開啟 Firebase 控制台,然後選取要使用的現有專案,或為擴充功能建立新專案。
繼續前往 Cloud Messaging 的設定頁面。
如果這個專案已有雲端訊息帳戶,請複製列出的數值型傳送者 ID。
如果未啟用雲端通訊功能,您需要在 Google Cloud 中為專案啟用 Firebase 雲端通訊 API。下圖顯示 Firebase 設定頁面上的連結,可直接前往這個頁面。
啟用後,請返回 Cloud Messaging 的設定頁面,然後複製傳送者 ID。
設定 browser.gcm
取得 Firebase 傳送者 ID 後,即可設定擴充功能來監聽訊息。首先,請確認您已在擴充功能的 manifest.json 中新增 gcm
權限。
{
"manifest_version": 3,
...
"permissions": ["gcm"]
您現在可以使用 browser.gcm API 了。您可以呼叫 browser.gcm.register,註冊接聽推播訊息。
監聽訊息
擴充功能註冊寄件者 ID 後,您需要新增程式碼來處理傳入的訊息。
沒有 Firebase 的 Firebase
雖然 browser.gcm一律會經過 Firebase,但您可以將 Firebase 設為外部推播訊息供應商的 Proxy。通常供應商會明確列出 Chrome 擴充功能支援,但任何支援 Firebase 舊版推播通知的供應商應該都能運作。如果供應商列出支援 Firebase 舊版推播通知,請試試看。如有問題,供應商支援團隊應能說明任何限制。
頻道和主題
browser.gcm 使用的是舊版 Firebase Messaging API。這項異動非常重要,因為舊版 API不支援訊息管道。系統會將推送的每則訊息傳送給所有用戶端。如果使用者擴充功能只對部分訊息感興趣,您必須自行篩選。
Firebase 帳戶一開始是免費的,但一旦超出特定用量門檻,就會開始收費。如果您打算傳送訊息給特定群組,用戶端篩選的費用可能會超出合理範圍。如要解決這個問題,可以建立多個專案來複製個別管道 (每個管道各有一個專案和傳送者 ID)。任何擴充功能最多可註冊 100 個傳送者 ID。
或者,如果您需要管道支援,或想使用推播通知,但不想透過 Firebase,可以使用 Push API。