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

Flutter iOS端应用后台/进程被杀状态下无法收到推送通知

Flutter iOS 后台/进程终止状态下通知不弹出问题修复方案

以下是按排查优先级排序的可落地修复步骤,覆盖90%以上的同类场景:

  • 首先校验Xcode端能力配置
    打开ios/Runner.xcworkspace,在Target的Signing & Capabilities页签确认两个配置:
    1. 已添加Push Notifications能力,对应entitlements文件里会自动生成aps-environment字段
    2. 已添加Background Modes能力,且勾选其中的Remote notifications选项
      这两项是iOS系统允许App在后台、终止态接收推送的前置条件,缺任何一个都不会触发系统级通知展示。
  • 校验通知权限申请逻辑
    不要用默认的provisional权限申请,这个权限下通知只会进通知中心,不会主动弹横幅。正确的权限申请代码如下:
    FirebaseMessaging.instance.requestPermission(
      alert: true,
      badge: true,
      sound: true,
      provisional: false
    );
    
    申请后可以在iOS系统设置里找到对应App,确认通知权限的横幅开关是打开状态,同时排除专注模式拦截通知的情况。
  • 校验推送Payload格式与优先级
    后台、终止态下的通知弹窗由APNs直接调起系统组件渲染,不会走Flutter层的业务代码,Payload必须符合APNs规范才能正常弹窗:

    错误写法:只传content-available: 1做静默推送,不带alert字段,这类推送只会唤醒App执行后台逻辑,用户看不到任何弹窗
    正确的Payload核心结构参考:

    {
      "aps": {
        "alert": {
          "title": "通知标题",
          "body": "通知正文"
        },
        "sound": "default",
        "badge": 1
      },
      "customParam": "自定义参数放在aps节点外"
    }
    
    如果用第三方推送服务发消息,必须将推送优先级设置为高优先级,低优先级推送会被APNs节流,延迟投递甚至不触发弹窗。
  • 修正通知处理的逻辑误区
    不要把通知弹窗的展示逻辑全部写在onMessage、onMessageOpenedApp这类Flutter层回调里:这几个回调仅在App处于前台、或者用户点击通知拉起App时触发,后台/终止态下Flutter引擎根本不会启动,这部分代码完全不会执行。如果是需要自定义通知样式的场景,要在原生端配置通知服务扩展(Notification Service Extension),不能依赖Flutter层代码触发展示。
    同时检查AppDelegate.swift里的通知前台展示代理实现,确保回调正确返回展示选项,错误的实现会干扰全场景的通知展示:
    override func userNotificationCenter(
      _ center: UNUserNotificationCenter,
      willPresent notification: UNNotification,
      withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void
    ) {
      // 前台状态下也允许弹出横幅、声音、角标
      completionHandler([.alert, .sound, .badge])
    }
    
  • 测试方式避坑
    不要连着Xcode调试器测试终止态推送,Xcode附加进程会干扰APNs的投递逻辑。正确测试方式是:打测试包装到真机上,手动划掉App杀掉进程,断开Xcode连接后再发推送测试。同时注意区分APNs开发/生产环境,开发环境的设备token只能用开发环境证书发推送,生产证书发的推送开发环境下设备完全收不到。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:39:15