You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter 实现推送通知是否必须使用 FCM?有哪些非 FCM 实现方案?

Flutter推送通知常见问题解答

FCM是否是Flutter推送的必选依赖?

不是,FCM只是谷歌推出的跨平台推送封装方案,你完全可以根据业务场景选择其他实现方式,不需要强制依赖FCM。

第三方系统 -> 自有API -> 移动端Flutter应用的链路是否可落地?

可以落地,但仅适用于特定场景,存在明显局限性:

  • 该链路的核心逻辑是移动端与你的自有API维持长连接(如WebSocket、TCP长连接),服务端直接通过长连接下发推送内容
  • 局限性:
    • 安卓端:受安卓系统后台进程限制,除非用户手动开启应用的自启动、后台活动权限并将应用加入系统白名单,否则应用进程被杀后长连接会断开,无法收到推送,公网C端场景可用性极低
    • iOS端:系统不允许第三方应用后台长期维持长连接,应用进程被杀后所有自研逻辑都会停止运行,该链路完全无法生效

不使用FCM的可行推送方案

1. 对接各平台系统级推送通道(公网C端场景推荐)

链路为第三方系统 -> 自有API -> 各平台原生推送通道 -> 移动端Flutter应用,不需要依赖FCM,可实现应用进程被杀、离线场景下正常收到推送:

  • iOS端:直接对接苹果官方APNs通道,自有服务端封装APNs推送接口,Flutter端可通过相关库获取设备token、接收系统推送
  • 安卓端:对接国内各大厂商的系统推送通道(华为推送、小米推送、OPPO推送、VIVO推送),这类通道走系统级长连接,不需要应用自身保活,Flutter端可使用聚合了多厂商通道的SDK减少开发成本

2. 国内第三方推送聚合服务

如果不想自行对接多平台通道,可以选择国内的推送聚合服务,这类服务已经完成了安卓多厂商通道、iOS APNs的适配,你只需要对接其服务端API即可,链路为第三方系统 -> 自有API -> 第三方推送服务 -> 移动端Flutter应用,全程不需要使用FCM,国内场景可用性高于FCM。

3. 自研长连接方案

仅适用于内网企业级应用场景,用户可被要求手动配置应用权限、加入系统白名单,可完全落地你提出的无中间推送服务的链路,公网C端场景不推荐使用。

本地推送无法在应用离线时触发的原因补充

你测试的纯本地推送仅能在前台、后台运行时触发,是因为常规的本地通知逻辑运行在应用进程内,进程被杀后逻辑无法执行。如果是定时类本地通知,可调用系统级的定时通知API实现进程被杀也能触发:安卓端使用AlarmManager注册系统定时任务,iOS端使用UNNotificationRequest注册系统定时通知即可。

内容的提问来源于stack exchange,提问作者GrandMagus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 12:54:04