FCM 推送指南
FCM 推送概述
自 Android 8.0 之后,系统权限控制越来越严,第三方推送通道的生命周期受到较大限制。为此,我们推出 FCM 推送方案。这保障了主流 Android 系统上的推送到达率。
在 FCM 推送方案里,消息下发时使用的通道不再是我们自己维持的 WebSocket 长连接,而是借用 FCM 进行通信。 一条推送消息下发的步骤如下:
- 开发者调用云服务 Push API 请求对全部或特定设备进行推送;
- 云推送服务端将请求转发给 FCM;
- FCM 通过手机端的系统通道下发推送消息,同时手机端系统消息接收器将推送消息展示到通知栏;
- 终端用户点击消息之后唤起目标应用或者页面。
整个流程与苹果的 APNs 推送类似,SDK 在客户端基本不会得到调用。
Android FCM 推送功能仅对商用版应用开放,如果希望使用该功能,请进入 开发者中心 > 你的游戏 > 游戏服务 > 云服务 > 推送通知 > 设置 > FCM,打开 FCM 推送的开关。
注意,FCM 推送可以随时按需开关。当该选项关闭后,下一次 Android 推送会与普通推送一样自动选择自有通道送达客户端,除了会再次遇到上面提到的自有通道在部分 ROM 上会受到限制的问题之外,不会有别的影响。而当该选项再次开启后,Android 推送又会去选择厂商推送渠道。
开启了 FCM 推送之后,Installation 表中每一个设备对应的记录,会增加 registrationId 字段,用于记录厂商分配的注册 id(类似于 APNs 的 device token),同时还会增加一个 vendor 字段(如果没有这一字段,则说明客户端集成有问题),其值为 fcm。
推送提醒的红点或角标展示
Android 系统默认支持根据 FCM 推送数量展示红点(桌面应用图标上显示)和角标(应用图标的长按菜单中显示)。
通知栏消息与透传消息
当应用在前台时,FCM 支持透传消息给应用。