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

iOS Flutter应用前台状态下无法展示本地通知该如何解决?

iOS Flutter应用前台展示本地通知解决方案

iOS系统默认不会在应用处于前台时弹出通知横幅,你已经完成了delegate的绑定,只需要补充实现UNUserNotificationCenterDelegate的回调方法即可。

步骤1:实现前台通知展示回调

在你的AppDelegate类中添加如下代理方法:

@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    // 配置前台展示的通知样式,可按需组合
    completionHandler([.alert, .sound, .badge])
}

这里的UNNotificationPresentationOptions可选参数说明:

  • .alert:展示通知横幅
  • .sound:播放通知提示音
  • .badge:更新应用角标

步骤2:验证权限配置

确保你在初始化通知时已经向用户申请了对应的通知权限,权限请求代码参考:

UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
    if granted {
        print("通知权限申请成功")
    }
}

可选:Flutter插件场景简化配置

如果你使用flutter_local_notifications插件实现通知,不需要修改原生代码,直接在初始化时开启前台展示配置即可:

final AndroidInitializationSettings initializationSettingsAndroid = AndroidInitializationSettings('@mipmap/ic_launcher');
final IOSInitializationSettings initializationSettingsIOS = IOSInitializationSettings(
  requestAlertPermission: true,
  requestBadgePermission: true,
  requestSoundPermission: true,
  onDidReceiveLocalNotification: onDidReceiveLocalNotification,
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:15:03