我在实现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。知道为什么导航器不起作用吗?
谢谢
答案 0 :(得分:0)
我已经解决了。更有可能是关于堆栈路由。
因为我构建了非线性导航器应用程序,所以我重新配置了每个父页面。 这是工作。