首页 > 解决方案 > 颤振:firebase消息导航器不起作用

问题描述

我在实现 firebase 消息传递时遇到问题。

当在调试日志中打印前台通知数据中的应用程序,但导航器不工作时。当后台应用程序和通知被点击时,调试日志中打印通知数据但导航器不起作用。

这是我的代码

@override
  void initState() {
    // TODO: implement initState
    super.initState();
    initiateData();
  }

  initiateData() async{
    firebase = new FirebaseMessaging();
    firebase.configure(
      onLaunch: (message){
        Log.write("on launch fcm");

      },

      onMessage: (message){
        Log.write("on message fcm");
        Log.write(json.encode(message));


        TanamDuitNavigator.present(context,
          child: new FullWebPages(
            language: "id",
            url: "https://example.com",
          )
        );
      },
      onResume: (message){
        Log.write("on resume fcm");
      }
    );
    firebase.requestNotificationPermissions();
    firebase.onIosSettingsRegistered.listen(
      (IosNotificationSettings setting){
        Log.write("Setting registered : $setting");
      });
    firebase.getToken().then((token){
      Log.write("fcm token : "+token);
      TanamStore.saveFcmToken(token);
    }).timeout(const Duration(seconds: 5));
  }

这就是 TanamduitNavigator 实际呈现的内容

static Future<dynamic> present(BuildContext context,
    {bool opq = false,
     Widget child,
     Widget curPage,
     Color barrier = ColorCollections.blackBarrier
    }
  ){
    return Navigator.of(context).push(new PageRouteBuilder(
      opaque: opq,
      pageBuilder: (_,Animation<double> animation,__){
        return child;
      },
      barrierColor: barrier,
      barrierDismissible: false,
      transitionsBuilder: (_,Animation<double>animation,__,Widget child){
        return new FadeTransition(
          opacity: animation,
          child: new SlideTransition(
            position: new Tween<Offset>(begin: new Offset(0.0, 0.5), end: new Offset(0.0, 0.0)).animate(animation),
            child: child,
          ),
        );
      },
      transitionDuration: const Duration(milliseconds: 200),
    ));
  }

在构建方法中,我调用了新对象 MaterialApp。知道为什么导航器不工作吗?

谢谢

标签: firebasedartfirebase-cloud-messagingflutter

解决方案


我已经解决了。它更有可能与堆栈路由有关。

因为我构建了非线性导航器应用程序,所以我重新配置了每个父页面。这是工作。


推荐阅读