我正在使用:
flutter version 2.2
firebase_messaging: ^10.0.2
我收到推送通知,然后点击它,应用程序被打开。然后我没有看到FirebaseMessaging.onMessageOpenedApp.listen
被调用(回调正在向我发送调试电子邮件,但我没有收到任何邮件)
我的问题是
1.(可选)我如何调试android应用程序与android studio debugur模拟上述情况下,所以应用程序被杀死没有打开,然后通过通知打开
1.这里有什么问题?为什么没有触发流?我在main.dart中初始化它
PS:所有其他方法工作正常,所以如果应用程序在前台,onMessage.listen工作得很好。我需要处理onMessageOpenedApp,这样我就可以根据通知信息将用户重定向到正确的视图
3条答案
按热度按时间vmdwslir1#
对于第一个问题:
要查看应用中的日志,您可以使用Android Studio或IntelliJ中的“Logcat”选项卡:
对于第二个问题:
如果您的应用被终止,而您希望接收通知单击回调,则应用途:
,因为根据Flutter团队对onMessageopenedApp函数的评论:
5q4ezhmt2#
要查看日志时,应用程序被杀死在您的情况下,你尝试
flutter logs
命令,只需插入您的设备在usb调试和运行flutter logs
在您的终端所有您的print
消息将显示在这里.关于
FirebaseMessaging.onMessageOpenedApp.listen
在应用程序启动时被调用是因为您需要定义后台消息处理程序查看完整的firebase_messaging示例main.dart
vjhs03f73#
我已经在这个问题上有一段时间了,只是注意到,有3个解决办法提供的
firebase_messaging
插件。1.初始信息
1.关于消息
您可以在下面找到详细信息:
1.当应用程序处于打开状态时,
onMessage
回调将被调用,实际上是一个Stream<RemoteMessage>
,并且在通知托盘中不会有通知。1.当应用程序处于暂停状态,即应用程序在后台处于活动状态时,通知托盘中会出现一个通知,单击该通知将调用
onMessageOpenedApp
回调,这也是一个Stream<RemoteMessage>
,因此您可以像这样处理它1.第三种情况是当应用程序处于终止或杀死状态时。在这种情况下,通知将显示在通知状态,但由于您的应用程序未处于活动状态,因此无法触发
Stream<RemoteMessage>
。因此,在这种情况下,firebase_messaging
为您提供了getInitialMessage
回调,实际上是Future<RemoteMessage?>
。您可以像这样使用它:请注意,如果在
main.dart
文件中处理,则每次用户打开应用程序时都会触发getInitializeMessage
回调。因此,可能message
为null,为了防止空指针异常,我在这里放置了if(message != null)
条件