Flutter:当应用程序处于后台但未在 iOS 中终止时,无法在通知单击时重定向到特定屏幕

Posted

技术标签:

【中文标题】Flutter:当应用程序处于后台但未在 iOS 中终止时,无法在通知单击时重定向到特定屏幕【英文标题】:Flutter : Unable to redirect to specific screen on Notification click when app is in background but not terminated in iOS 【发布时间】:2020-06-02 14:50:57 【问题描述】:

我使用firebase_messaging 插件进行通知,在两个平台上通知都可以正常工作,

但是,我想在通知点击事件中将用户重定向到特定屏幕。对于 Android 方面,它工作正常。但是对于IOS,如果应用程序在后台并且没有终止,则它不起作用(如果应用程序终止,则可以正常工作)。

这是我的通知集成代码示例:

_firebaseMessaging.configure(
  onMessage: (Map<String, dynamic> message) async 
    print("onMessage: $message");
    gotoTempPage();
  ,
  onLaunch: (Map<String, dynamic> message) async 
    print("onLaunch: $message");
    gotoTempPage();
  ,
  onResume: (Map<String, dynamic> message) async 
    print("onResume: $message");
    gotoTempPage();
  ,
);

我正在使用插件版本firebase_messaging: ^6.0.9,和颤振版本v1.12.13+hotfix.5

已经提到这些问题935、1757、1677,但没有任何帮助。

【问题讨论】:

【参考方案1】:

您好,我遇到了完全相同的问题。因此,根据插件的当前文档 (firebase_messaging),您应该对 Appdelegate.m/Appdelegate.swift 文件进行一些修改。 这个修改有问题。 从您的AppDelegate.swiftAppDelegate.m 中的类似代码中删除以下代码

if #available(ios 10.0, *) 
          UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate

这似乎是这个版本的 firebase_messaging (6.0.9) 的错误或问题,如here

【讨论】:

@Rufw91 我即将实现它并搜索我发现它与flutter_local_notification 存在一些兼容性问题。你在 iOS 上遇到了一些问题吗?通常的问题与后台与前台接收消息和本地通知有关。你能确认在以太模式下你能收到这两个通知吗?非常感谢 嗨@Vincenzo,我在iOS应用程序中使用了没有AppDelegate修改的应用程序,当应用程序处于前台、暂停和终止时,我收到通知没有任何问题。但是,我没有使用flutter_local_notification。我不认为(主观)这应该是一个问题。

以上是关于Flutter:当应用程序处于后台但未在 iOS 中终止时,无法在通知单击时重定向到特定屏幕的主要内容,如果未能解决你的问题,请参考以下文章

Flutter Firebase:抬头通知未在后台显示

当应用程序在后台时,颤振通知是空白的

当应用程序处于后台时,Android 2nd 推送通知有效负载数据未在附加中接收

当应用程序在前台 iOS 中时,未在通知托盘(顶部)中获取推送通知

Flutter Firebase:Firebase 中的数据更新,但未在屏幕上自动显示计数器更新

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