【问题标题】:Firebase Messaging plugin from Flutter (FCM) not triggering onMessage callback on iOS when app in background当应用程序在后台时,来自 Flutter(FCM)的 Firebase Messaging 插件不会在 iOS 上触发 onMessage 回调
【发布时间】:2021-03-11 21:24:31
【问题描述】:

FCM 在 iOS 上对我来说工作正常,除非应用程序在后台:不会触发 onMessage 回调。我收到了通知并且它们得到了正确处理,但我需要在应用程序中更新我的通知变量,所以即使应用程序在后台,我也需要存储通知。

阅读FCM包documentation,我认为即使应用程序在后台也应该调用onMessage,但事实并非如此。有没有人解决过这个问题?我正在使用 firebase_messaging: ^7.0.3。我在这里和 Github 上看到了很多关于此的帖子,但更改有效负载对我来说并不适用。

【问题讨论】:

    标签: flutter push-notification firebase-cloud-messaging


    【解决方案1】:

    感谢article,我找到了解决方法。

    1. 添加找到here的flutter_local_notifications包。

    2. 将此代码添加到您的 main.dart:

      import 'package:flutter_local_notifications/flutter_local_notifications.dart';
      var flutterLocalNotificationsPlugin = new FlutterLocalNotificationsPlugin();
      
    3. 将此代码添加到 main.dart 中的 main() 函数中:

      var initializationSettingsAndroid =
          new AndroidInitializationSettings('icon_notif');
      
          var initializationSettingsIOS =
          IOSInitializationSettings();
      
          var initializationSettings =
          InitializationSettings(
              android: initializationSettingsAndroid,
              iOS: initializationSettingsIOS);
      
          flutterLocalNotificationsPlugin
              .initialize(initializationSettings);
      

    它应该可以工作。

    更新: 为此,您的通知负载不能有“通知”字段。我最终要做的是发送两个通知:一个带有“数据”,另一个带有“通知”,以涵盖所有情况。

    【讨论】:

    • 你能分享你使用的payload吗? firebase_messaging 8+ 版本改变了推送通知集的方式
    猜你喜欢
    • 2020-01-25
    • 2020-06-06
    • 2020-04-28
    • 2020-06-30
    • 2019-03-07
    • 2020-01-29
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多