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

Flutter应用关闭时不使用FCM/Firebase如何实现推送通知+WebSocket功能?

Flutter 应用关闭状态接收通知实现方案

你当前使用的web_socket_channel建立的WebSocket长连接仅在应用处于前台/后台活跃状态时可以正常工作,应用进程被系统杀死或者用户手动关闭后,长连接会自动断开,无法基于现有WebSocket链路接收消息,需要结合系统推送通道搭配flutter_local_notifications实现需求,具体操作逻辑如下:

  • 接入系统级推送通道
    应用关闭状态下只有厂商系统级推送通道可以正常接收消息,无需维持应用进程存活:
    • 安卓端:接入谷歌FCM推送,针对国内用户需要额外适配小米、华为、OPPO、vivo等主流厂商的系统推送服务,避开国内谷歌服务不可用的问题
    • iOS端:直接接入苹果官方APNs推送服务,这是iOS系统唯一允许的应用关闭状态下的消息触达通道
  • 统一通知展示逻辑
    你可以继续沿用flutter_local_notifications做全场景的通知展示,不需要修改现有通知UI样式:

    应用前台运行时:保留现有WebSocket逻辑,收到服务端消息后直接调用flutter_local_notifications的通知展示接口弹出通知即可
    应用后台/关闭状态时:系统推送通道接收到服务端下发的消息后,触发推送回调,调用flutter_local_notifications的接口完成本地通知展示

  • 特殊场景补充方案
    如果你的应用针对特定使用人群、允许用户手动开启高等级后台权限,可以引入后台保活依赖维持WebSocket长连接,该方案在安卓高版本、iOS系统上会受到严格的权限限制,很容易被系统回收进程,仅作为备选方案使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:06:03