我在 Flutter 项目中使用 FCM,推送通知在 Android 和 iOS 上得到了很好的接收和处理。 但是对于 iOS 打开和转换数据不会在 Firebase 控制台的云消息传递部分收集。 我该如何解决? ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
如何使用FirebaseMessaging
根据通知数据打开 flutter 应用程序?
因此,当我点击通知(通过Firebase Messaging
接收)时,消息处理程序应评估数据并根据它们打开应用程序。 目前它是asynchronous
的,这意味着应用程序启动并且通知处理程序继续工作。
重要的是要知道,不能使用Navigator.push
,因为有一个重要的应用程序设置屏幕,它会在应用程序启动时检查 auth state 等。 如何解决这个问题?
当您从设备的通知中心点击通知时,操作系统将启动应用程序,当然前提是您已按照说明正确设置了 Firebase 消息传递, onLaunch
或onMessage
函数将被调用。
现在,由于 firebase 消息已尽可能早地配置,通常在 flutter 应用程序的main
条目中,您需要先将通知存储在某处。 这可以是在使用它的任何对象之前创建的全局 state object。
final notifications = <NotificationData>[]; // globally accessible (i.e. via Provider)
然后在消息的处理程序中......
NotificationData onMessage(Map<String, dynamic> data) {
notifications.add(NotificationData.fromJson(data));
}
flutter 应用程序将启动, MaterialApp
将被构建。 此时,您可以有一个加载屏幕来检查用户是否已通过身份验证或notifications
全局 state 中的任何新消息。 如果有,您可以路由到页面以显示通知,或者让用户登录然后路由到通知页面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.