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
相关产品推荐
相关产品推荐

