Jsp*_*spr 3 dart firebase flutter
当应用程序关闭时打开通知时,如何在 flutter 中导航?
这是我从主函数调用的代码:
final FirebaseMessaging _fcm = FirebaseMessaging.instance;
_fcm.getInitialMessage().then((RemoteMessage message) {
if (message != null && message.data != null) {
Keys.navKey.currentState.pushNamed(Routes.messageDetail);
}
});
Run Code Online (Sandbox Code Playgroud)
在我的 main.dart 中,我设置了 MaterialApp 的 navigatorKey:
MaterialApp(
navigatorKey: Keys.navKey,)
Run Code Online (Sandbox Code Playgroud)
navKey 是一个静态变量:
class Keys {
static final navKey = new GlobalKey<NavigatorState>();
}
Run Code Online (Sandbox Code Playgroud)
如果我在应用程序关闭时打开通知,我会收到以下错误:
NoSuchMethodError:在 null 上调用了方法“pushNamed”。接收者:null 尝试调用:pushNamed("MESSAGEDETAIL")
我可以使用导航键在应用程序中的其他位置导航。
还有其他方法可以做到这一点或者如何确保 navigationKey 已初始化?
用于FirebaseMessaging.instance.getInitialMessage()在后台处理消息
例子:
void handleMessageOnBackground() {
FirebaseMessaging.instance.getInitialMessage().then(
(remoteMessage) {
if (remoteMessage != null) {
String payload = json.encode(remoteMessage.data);
//navigator two orther screen
}
},
);
}
Run Code Online (Sandbox Code Playgroud)
并且 init handleMessageOnBackground(),home_screen.dart而不是main.dart
main.dart>>splash_screenhome_screen
| 归档时间: |
|
| 查看次数: |
1879 次 |
| 最近记录: |