导航在 Firebase Messaging Flutter 中不起作用
Navigation is not working in Firebase Messaging Flutter
屏幕无法在 onLaunh()
和 onResume()
的 firebase 消息传递方法中导航,我尝试显示本地通知以导航屏幕但仍然失败。
我的负载
onResume payload======{notification: {}, data: {notification_type: VideoCalling, role:
ROLE_CONSILIER_CARIERA, google.original_priority: high,
google.sent_time: 1576478554401, google.delivered_priority: high,
appointment:
{"video_duration":"0","mod_desfasurare":"3","observatii_destinatar":"","initiator":"204","observatii_initiator":"chdh","data_sfarsit_programare":"2019-12-14
12:00:00","created_by_user":"204","data_inceput_programare":"2019-12-14
11:00:00","status_destinatar":"1","status_initiator":"1","descriere":"chhxsh","destinatar":"246","tip":"0","id":"241","data_adaugarii":"2019-12-13
15:56:39","titlu":"test 13 dc","disponibilitate":"346"}, body: Apelul
video programat este activ acum pentru student, title: Escouniv,
click_action: FLUTTER_NOTIFICATION_CLICK, google.message_id:
0:1576478554409777%dd3b8f6edd3b8f6e, collapse_key: com.sys.escouniv,
google.ttl: 2419200, from: 347273381579, id: 50, status: done}}
onLaunch: (Map<String, dynamic> msg) async {
Log.e('onLaunch====== ', msg);
Log.e('onLaunch data====== ', msg['data']);
// showNotification(msg);
_navigateToItemDetail(msg);
/* Future.delayed(
const Duration(seconds: 4),
() => Navigator.push(
context,
new MaterialPageRoute(builder: (context) => new StudentTutorials(user:UserType.Student,)),
));*/
},
@Anand Saga here 我跟了同样的事,
据我了解,为什么我得到 key notification
null 但在 onMessage
中我得到 notification
with title and body.
添加一个 bool 标志并在构建完成后将其设置为真
WidgetsBinding.instance.addPostFrameCallback((_){ flag = true; });
并在您的 onLaunch
中使用这个计时器
Timer.periodic(Duration(seconds: 1), (timer){
if(flag) {
timer.cancel();
doNavigation();
}
});
屏幕无法在 onLaunh()
和 onResume()
的 firebase 消息传递方法中导航,我尝试显示本地通知以导航屏幕但仍然失败。
我的负载
onResume payload======{notification: {}, data: {notification_type: VideoCalling, role: ROLE_CONSILIER_CARIERA, google.original_priority: high, google.sent_time: 1576478554401, google.delivered_priority: high, appointment: {"video_duration":"0","mod_desfasurare":"3","observatii_destinatar":"","initiator":"204","observatii_initiator":"chdh","data_sfarsit_programare":"2019-12-14 12:00:00","created_by_user":"204","data_inceput_programare":"2019-12-14 11:00:00","status_destinatar":"1","status_initiator":"1","descriere":"chhxsh","destinatar":"246","tip":"0","id":"241","data_adaugarii":"2019-12-13 15:56:39","titlu":"test 13 dc","disponibilitate":"346"}, body: Apelul video programat este activ acum pentru student, title: Escouniv, click_action: FLUTTER_NOTIFICATION_CLICK, google.message_id: 0:1576478554409777%dd3b8f6edd3b8f6e, collapse_key: com.sys.escouniv, google.ttl: 2419200, from: 347273381579, id: 50, status: done}}
onLaunch: (Map<String, dynamic> msg) async {
Log.e('onLaunch====== ', msg);
Log.e('onLaunch data====== ', msg['data']);
// showNotification(msg);
_navigateToItemDetail(msg);
/* Future.delayed(
const Duration(seconds: 4),
() => Navigator.push(
context,
new MaterialPageRoute(builder: (context) => new StudentTutorials(user:UserType.Student,)),
));*/
},
@Anand Saga here 我跟了同样的事,
据我了解,为什么我得到 key notification
null 但在 onMessage
中我得到 notification
with title and body.
添加一个 bool 标志并在构建完成后将其设置为真
WidgetsBinding.instance.addPostFrameCallback((_){ flag = true; });
并在您的 onLaunch
Timer.periodic(Duration(seconds: 1), (timer){
if(flag) {
timer.cancel();
doNavigation();
}
});