当应用程序处于前台时,FCM 会处理 IOS 通知,这是我不想做的
FCM handles IOS notification when app is foreground which is I do not want to
我在 Flutter 项目上使用 fcm 和 local_notifications 处理推送通知。
使用此负载发送通知:
{
token: body.token,
notification = {
title: body.data.title,
body: body.data.body,
},
data: {
data: JSON.stringify(body.data),
}
}
所以当通知到来时
在应用程序终止时: 两个应用程序的通知都完美显示(ios - android)
在应用程序背景上: 两个应用程序的通知都完美显示(ios - android)
在应用前台:
android app: 通知就像数据通知一样,fcm 没有像我想要的那样发出任何警报。
ios app: 当通知到来时,fcm 正在显示我不想显示的警报。同时显示local_notifications
我的问题是 fcm 在 ios 应用程序上处理前台通知。当它以这种方式工作时,我无法禁用不应出现在前台的通知。
pubspec.yaml:
firebase_messaging: ^10.0.4
flutter_local_notifications: ^8.1.1+1
firebase 前台通知选项:
await instance.setForegroundNotificationPresentationOptions(alert: true, badge: true, sound: true);
When I remove firebase foreground notification options or set false all parameters, local_notifications can't display any notifications too.
local_notifications 前台通知选项:
instance.resolvePlatformSpecificImplementation<IOSFlutterLocalNotificationsPlugin>()?.requestPermissions(
alert: true,
badge: true,
sound: true,
);
谢谢。
我找到了解决方案:
太明显了:D
await instance.setForegroundNotificationPresentationOptions(alert: false, badge: true, sound: true);
如果您不希望 FCM 处理前台警报,警报参数应为 false。
我在 Flutter 项目上使用 fcm 和 local_notifications 处理推送通知。
使用此负载发送通知:
{
token: body.token,
notification = {
title: body.data.title,
body: body.data.body,
},
data: {
data: JSON.stringify(body.data),
}
}
所以当通知到来时
在应用程序终止时: 两个应用程序的通知都完美显示(ios - android)
在应用程序背景上: 两个应用程序的通知都完美显示(ios - android)
在应用前台:
android app: 通知就像数据通知一样,fcm 没有像我想要的那样发出任何警报。
ios app: 当通知到来时,fcm 正在显示我不想显示的警报。同时显示local_notifications
我的问题是 fcm 在 ios 应用程序上处理前台通知。当它以这种方式工作时,我无法禁用不应出现在前台的通知。
pubspec.yaml:
firebase_messaging: ^10.0.4
flutter_local_notifications: ^8.1.1+1
firebase 前台通知选项:
await instance.setForegroundNotificationPresentationOptions(alert: true, badge: true, sound: true);
When I remove firebase foreground notification options or set false all parameters, local_notifications can't display any notifications too.
local_notifications 前台通知选项:
instance.resolvePlatformSpecificImplementation<IOSFlutterLocalNotificationsPlugin>()?.requestPermissions(
alert: true,
badge: true,
sound: true,
);
谢谢。
我找到了解决方案: 太明显了:D
await instance.setForegroundNotificationPresentationOptions(alert: false, badge: true, sound: true);
如果您不希望 FCM 处理前台警报,警报参数应为 false。