當應用程式關閉時打開通知時,如何在顫動中導航?
這是我從主函式呼叫的代碼:
final FirebaseMessaging _fcm = FirebaseMessaging.instance;
_fcm.getInitialMessage().then((RemoteMessage message) {
if (message != null && message.data != null) {
Keys.navKey.currentState.pushNamed(Routes.messageDetail);
}
});
在我的 main.dart 中,我設定了 MaterialApp 的 navigatorKey:
MaterialApp(
navigatorKey: Keys.navKey,)
navKey 是一個靜態變數:
class Keys {
static final navKey = new GlobalKey<NavigatorState>();
}
如果我在應用程式關閉時打開通知,我會收到以下錯誤:
NoSuchMethodError:在 null 上呼叫了方法“pushNamed”。接收方:null 嘗試呼叫:pushNamed("MESSAGEDETAIL")
我可以使用導航鍵在應用程式的其他位置導航。
還有另一種方法可以做到這一點,或者我如何確保navigationKey 已初始化?
uj5u.com熱心網友回復:
用于FirebaseMessaging.instance.getInitialMessage()在后臺處理訊息
例子:
void handleMessageOnBackground() {
FirebaseMessaging.instance.getInitialMessage().then(
(remoteMessage) {
if (remoteMessage != null) {
String payload = json.encode(remoteMessage.data);
//navigator two orther screen
}
},
);
}
并 init handleMessageOnBackground()in home_screen.dart,而不是main.dart
main.dart> splash_screen>home_screen
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/477917.html
