【发布时间】:2022-01-11 06:13:59
【问题描述】:
我想在收到 FCM 背景消息时切换到屏幕。但是对于这个 context 是必需的,我的 Firebase 后台消息处理程序中肯定没有,所以我在互联网上搜索,发现我可以从 navigator key 获取上下文,所以我创建了这个全局变量:
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
这在我的材料应用程序上:
runApp(GetMaterialApp(
navigatorKey: navigatorKey,
home: const MyHomePage(),));
现在,每当我收到背景消息时,我都会尝试切换到所需的屏幕,但我总是得到空上下文,所以无法Push。浏览GetX 也会引发错误。
我错过了什么?请帮忙!!!!
myFB 后台处理程序:
Future<dynamic> firebaseMessagingBackgroundHandler(RemoteMessage message) async {
await Firebase.initializeApp();
if(message.data['test'] == '123'){
Navigator.of(navigatorKey.currentContext!).push(MaterialPageRoute(builder: (context) =>const Wallet()));
}
}
【问题讨论】:
标签: android flutter flutter-getx