我有一个实现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。知道为什么导航仪无法工作吗?
谢谢
我已经解决了它更可能是关于堆栈路由。
因为我构建非线性导航应用程序,所以我配置每个父页面。这是工作。