我使用Firebase Cloud Messaging通过云函数向我的Flutter应用发送推送通知,在通知中添加了数据,这些数据将定义用户点击通知后打开的页面。
以下是我用于处理修改的逻辑:
这意味着我无法访问导航器。有没有办法解决这个问题,从而在用户点击通知时打开特定页面?
以下是我用于处理修改的逻辑:
void _handleMessage(RemoteMessage message) {
Navigator.pushNamed(context, "/shop", arguments: message.data["id"]);
return;
}
Future<void> setupInteractedMessage() async {
// Get any messages which caused the application to open from
// a terminated state.
RemoteMessage? initialMessage = await FirebaseMessaging.instance.getInitialMessage();
// If the message also contains a data property with a "type" of "chat",
// navigate to a chat screen
if (initialMessage != null) {
_handleMessage(initialMessage);
}
// Also handle any interaction when the app is in the background via a
// Stream listener
FirebaseMessaging.onMessageOpenedApp.listen(_handleMessage);
}
在初始化Firebase应用时,我调用了setupInteractedMessage();
。
这样做是有效的,但当应用程序处于后台并且我点击通知时,会出现以下错误:
[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: Navigator operation requested with a context that does not include a Navigator.
The context used to push or pop routes from the Navigator must be that of a widget that is a descendant of a Navigator widget.
这意味着我无法访问导航器。有没有办法解决这个问题,从而在用户点击通知时打开特定页面?