您可以使用 chrome.gcm 向最终用户发送和接收消息。由于它基于 Firebase Cloud Messaging (FCM) 构建,因此依赖于您需要设置的外部服务。该方法将引导您完成在扩展程序中正常运行的所有必要步骤。
虽然 chrome.gcm
仍受支持,但它是在推送标准早十多年前创建的。通常情况下,最佳做法始终是使用 Web 标准,而不是特定于扩展程序的 API。除非您确实需要使用 chrome.gcm
,否则我们建议您使用推送。
前提条件
要使用 chrome.gcm
,您需要设置一个 Firebase 帐号。
![Firebase.com 首页。](https://developer.chrome.com/docs/extensions/how-to/integrate/chrome.gcm/firebase_homepage.jpg?authuser=7&hl=zh-cn)
创建帐号后,您需要打开 Firebase 控制台,选择要使用的现有项目,或者为扩展程序创建一个新项目。
![Firebase 控制台上项目列表的屏幕截图。](https://developer.chrome.com/docs/extensions/how-to/integrate/chrome.gcm/firebase_console.jpg?authuser=7&hl=zh-cn)
继续前往 Cloud Messaging 的设置页面。
![Firebase Cloud Messaging 设置页面的屏幕截图。](https://developer.chrome.com/docs/extensions/how-to/integrate/chrome.gcm/firebase_settings.jpg?authuser=7&hl=zh-cn)
如果此项目已有云消息传递账号,您需要复制列出的数字发送者 ID。
如果您没有启用 Cloud Messaging,则需要为 Google Cloud 内的项目启用 Firebase Cloud Messaging API。在下图中,您可以看到 Firebase 设置中的直接指向此页面的链接。
![用于在 Google Cloud 中启用 Firebase Messaging API 的链接位置的屏幕截图。](https://developer.chrome.com/docs/extensions/how-to/integrate/chrome.gcm/firebase_enable_cloud.jpg?authuser=7&hl=zh-cn)
启用后,返回 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 可配置为充当外部推送消息传递供应商的代理。通常,供应商会明确列出对 Chrome 扩展程序的支持,但是任何支持 Firebase 旧版推送通知的供应商应该可以正常使用。如果您的提供商列出了对 Firebase 旧版推送通知的支持,不妨试一试。如果您遇到问题,提供程序支持团队应能够说明将会实施的任何限制。
关于频道和主题
chrome.gcm
使用的是旧版 Firebase Messaging API。这一点很重要,因为旧版 API 不支持消息通道。推送的每条消息都会发送到每个客户端。如果用户的扩展程序仅对部分消息感兴趣,您需要自行进行过滤。
虽然 Firebase 最初是免费帐号,但如果您的用量超过一定阈值,我们才会向您收取相应费用。如果您打算向特定群组发送消息,那么客户端过滤最终所产生的费用可能会超过应有的费用。如需解决此问题,您可以创建多个项目来复制单独的渠道(一个项目,每个渠道对应一个发送者 ID)。任何给定的扩展程序都可以注册多个发送者 ID,最多 100 个。
或者,如果您需要渠道支持,或者希望在不借助 Firebase 的情况下使用推送通知,则可以使用 Push API。