当应用程序处于前台时,FCM 处理 IOS 通知,这是我不想

Posted

技术标签:

【中文标题】当应用程序处于前台时,FCM 处理 IOS 通知,这是我不想【英文标题】:FCM handles IOS notification when app is foreground which is I do not want to 【发布时间】:2021-10-17 09:21:52 【问题描述】:

我在我的 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 应用程序: 通知就像数据通知一样,fcm 不会像我想要的那样提醒任何东西。

ios 应用程序: 当通知到来时,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);

当我删除 firebase 前台通知选项或将所有参数设置为 false 时,local_notifications 也无法显示任何通知。

local_notifications 前台通知选项:

instance.resolvePlatformSpecificImplementation<IOSFlutterLocalNotificationsPlugin>()?.requestPermissions(
          alert: true,
          badge: true,
          sound: true,
        );

谢谢。

【问题讨论】:

【参考方案1】:

我找到了解决方案: 太明显了:D

await instance.setForegroundNotificationPresentationOptions(alert: false, badge: true, sound: true);

如果您不希望 FCM 处理前台警报,则警报参数应为 false。

【讨论】:

以上是关于当应用程序处于前台时,FCM 处理 IOS 通知,这是我不想的主要内容,如果未能解决你的问题,请参考以下文章

如何在应用程序处于后台(ios)时使 FCM 通知正常工作?

应用完全关闭时获取 FCM 远程通知 iOS

当应用程序处于后台状态时,FCM多次推送通知无法正常工作

在 iOS 10 下使用 FCM 在前台单击推送通知后无法导航到特定的 viewController

iOS 如何在应用未运行时处理 FCM

Flutter IOS 通知的 FCM 在应用程序处于后台或终止时不显示