扑扑:Firebase消息传递导航器不起作用

时间:2018-08-20 07:17:23

标签: firebase dart firebase-cloud-messaging flutter

我在实现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。知道为什么导航器不起作用吗?

谢谢

1 个答案:

答案 0 :(得分:0)

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

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