您可以使用 chrome.gcm 向最终用户发送和接收消息。由于它基于 Firebase Cloud Messaging (FCM) 构建,因此需要您设置外部服务。本教程将引导您完成在扩展程序中使用该功能所需的所有必要步骤。
虽然 chrome.gcm
仍受支持,但它是在推送标准推出之前的十多年前创建的。一般而言,最佳实践始终是使用 Web 标准,而不是扩展程序专用 API。除非您有特定需要使用 chrome.gcm
,否则我们建议您使用推送。
前提条件
如需使用 chrome.gcm
,您需要设置 Firebase 账号。
![Firebase.com 首页。](https://developer.chrome.google.cn/docs/extensions/how-to/integrate/chrome.gcm/firebase_homepage.jpg?authuser=002&hl=sk)
创建账号后,您需要打开 Firebase 控制台,选择要使用的现有项目,或为扩展程序创建一个新项目。
![Firebase 控制台中项目列表的屏幕截图。](https://developer.chrome.google.cn/docs/extensions/how-to/integrate/chrome.gcm/firebase_console.jpg?authuser=002&hl=sk)
继续前往 Cloud Messaging 的设置页面。
![Firebase Cloud Messaging 设置页面的屏幕截图。](https://developer.chrome.google.cn/docs/extensions/how-to/integrate/chrome.gcm/firebase_settings.jpg?authuser=002&hl=sk)
如果您在此项目中已有 Cloud Messaging 账号,则需要复制所列的数字发件人 ID。
如果您尚未启用 Cloud Messaging,则需要在 Google Cloud 中为项目启用 Firebase Cloud Messaging API。在下图中,您可以看到 Firebase 设置中直接指向此页面的链接所在的位置。
![在 Google Cloud 中启用 Firebase Messaging API 的链接位置的屏幕截图。](https://developer.chrome.google.cn/docs/extensions/how-to/integrate/chrome.gcm/firebase_enable_cloud.jpg?authuser=002&hl=sk)
启用后,返回 Cloud Messaging 的设置页面,然后复制发件人 ID。
配置 chrome.gcm
现在,您已经从 Firebase 获取了发件人 ID,接下来可以配置扩展程序以监听消息。首先,请确保您已向扩展程序的 manifest.json
添加了 gcm
权限
{
"manifest_version": 3,
...
"permissions": ["gcm"]
您现在可以访问 chrome.gcm
API。您可以通过调用 chrome.gcm.register
进行注册以监听推送消息。
监听消息
扩展程序注册了发送者 ID 后,您需要添加代码来处理收到的消息。
无 Firebase 的 Firebase
虽然 chrome.gcm
始终会通过 Firebase,但 Firebase 可以配置为充当外部推送消息供应商的代理。通常,供应商会明确列出对 Chrome 扩展程序的支持,但任何支持 Firebase 旧版推送通知的供应商都应该可以使用。如果您的提供商列出了对 Firebase 旧版推送通知的支持,请尝试使用。如果您遇到问题,提供商支持团队应该能够说明存在的任何限制。
针对频道和主题
chrome.gcm
使用的是旧版 Firebase Messaging API。这一点很重要,因为旧版 API 不支持消息通道。推送的每条消息都会发送给每个客户端。如果用户的扩展程序只对部分邮件感兴趣,您需要自行过滤。
虽然 Firebase 账号一开始是免费的,但当您超出一定的使用量阈值后,我们会向您收费。如果您计划向特定群组发送消息,则客户端过滤功能最终的费用可能会超出承诺的费用。您可以通过创建多个项目来复制各个渠道(每个渠道一个项目和一个发件人 ID),从而解决此问题。任何给定扩展程序都可以注册多个发件人 ID(最多 100 个)。
或者,如果您需要渠道支持,或者想在不通过 Firebase 的情况下使用推送通知,可以使用 Push API。