嗨,在我的一个flutter项目中,我使用的是firebase消息。首先是启动屏幕,其次是应用程序的主页面。在第二页中,我在init state
中实现了firebase.configure
方法,如下所示。_navigateToItemDetail
方法导致另一页
@override
void initState() {
super.initState();
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print("onMessage: $message");
setState(() {
_newNotification = true;
});
},
onLaunch: (Map<String, dynamic> message) async {
print("onLaunch: $message");
_navigateToItemDetail(message);
},
onResume: (Map<String, dynamic> message) async {
print("onResume: $message");
_navigateToItemDetail(message);
},
);
然后我会调用这个页面的web服务。但上述方法将在Web服务调用后启动。因此,这将导致页面重定向错误。我只是在web服务调用中延迟了4秒,然后它就会正常工作。有什么方法可以解决这个问题吗?async
方法可用于firebase配置?
我认为您需要"onBackgroundMessage">
firebaseMessaging.configure(
//...
onBackgroundMessage: Platform.isIOS ? null : myBackgroundMessageHandler
//...
)
//...
static Future<dynamic> myBackgroundMessageHandler(Map<String, dynamic> message) async {
//Do here something
}
正如你所看到的,它只适用于安卓