Flutter FCM 推送通知不起作用

Posted

技术标签:

【中文标题】Flutter FCM 推送通知不起作用【英文标题】:Flutter FCM Push Notificaiton Not Working 【发布时间】:2020-10-14 20:28:06 【问题描述】:

我正在使用 Firebase 推送通知的颤振应用程序。我有一个问题是 onMessage 我从 Firebase 接收数据,但问题是唯一打印数据工作正常但不能导航到其他屏幕。

_configureFirebaseMessageing() 
    _firebaseMessaging.configure(
      onMessage: (Map<String, dynamic> message) async 

        print('\n\n\n message from fcm  \n $message\n\n\n\n');
        Navigator.pushNamed(context, Routes.FirstProfile);
      ,
      onLaunch: (Map<String, dynamic> message) async 


        Navigator.push(context, MaterialPageRoute(builder: (BuildContext context)
          return NativationPage("this is from main ON Resume $message['data']['title']");
        ));


      ,
      onResume: (Map<String, dynamic> message) async 

        Navigator.push(context, MaterialPageRoute(builder: (BuildContext context)
          return NativationPage("this is from main ON Resume $message['data']['title']");
        ));
        
      ,

    );
  

这是我的代码,是的,只有控制台上的打印数据有效,并且导航到其他屏幕在所有三个 onMessage、onLaunch 和 onResume 上都无效。

我在控制台中有一个错误:

E/FlutterFcmService( 2445): Fatal: failed to find callback

第二个错误是

w/firebasemessaging( 2445): missing default notification channel metadata in android manifest. default value will be used.

【问题讨论】:

【参考方案1】:

导航:

我认为这是 onMessage 内部的上下文问题。您必须在 MaterialApp 小部件中定义 navigatorKey,然后您可以使用 navigatorKey.currentContext 访问 onMessage 中的当前上下文。

更多详情可以查看answer。

错误/警告:

错误和警告是因为您错过了一些插件配置。尽一切努力提及here

【讨论】:

以上是关于Flutter FCM 推送通知不起作用的主要内容,如果未能解决你的问题,请参考以下文章

向 FCM 服务器发送推送通知不起作用

FCM 推送通知在 Android 4.4 上不起作用

来自通知中心的推送通知不起作用,但在 FCM 中它正在工作

Android推送通知的自定义声音不起作用(FCM)

Cocos2d FCM 推送通知不起作用

使用离子电容器的 FCM 推送通知在 IOS 中不起作用