Flutter 等待应用程序启动后,使用firebase消息和Flatter启动

Flutter 等待应用程序启动后,使用firebase消息和Flatter启动,flutter,firebase-cloud-messaging,app-startup,Flutter,Firebase Cloud Messaging,App Startup,我正在构建一个带有flatter和firebase云消息的应用程序。在onLounch方法中,我有一些beahvioursubject,它们触发重定向和数据刷新。然而,他们没有工作,因为他们在别人听之前就开火了。我不想使用ReplaySubject,因为它很棘手,所以我想知道是否有一些标准方法可以在应用程序准备好之前对它们进行黄金化 p、 我知道它们确实有效,因为如果我做一些等待未来。延迟(持续时间(秒:10))一切正常,但这不是方法。好的,我已经知道如何等待某个屏幕 基本上,onLaunch方

我正在构建一个带有flatter和firebase云消息的应用程序。在onLounch方法中,我有一些beahvioursubject,它们触发重定向和数据刷新。然而,他们没有工作,因为他们在别人听之前就开火了。我不想使用ReplaySubject,因为它很棘手,所以我想知道是否有一些标准方法可以在应用程序准备好之前对它们进行黄金化


p、 我知道它们确实有效,因为如果我做一些
等待未来。延迟(持续时间(秒:10))
一切正常,但这不是方法。

好的,我已经知道如何等待某个屏幕


基本上,
onLaunch
方法将在您调用
FirebaseMessaging.configure()
方法后触发。因此,如果您希望应用程序从加载屏幕开始,然后在加载一些数据后转到主屏幕,您只需在主屏幕内调用
FirebaseMessageing.configure()
,即可在此时启动
onLaunch

因此,我通过向启动模型添加FirebaseMessageing.configure()解决了这个问题 在后台处理程序中,我有以下代码 我的代码是:

handle(dynamic data, bool onLaunch) {
    if (onLaunch) {
      onHomeReady.take(1).listen((event) {
        _innerHandler(data, onLaunch);
      });
    } else {
      _innerHandler(data, onLaunch);
    }
  }

和onHomeReady.add(..)在home init方法中时触发。这更灵活,关注点也更分散,但在主页中调用FirebaseMessaging.configure()在大多数情况下都能起作用。

我实际上有解决方案,并在主页中使用额外的observable解决了这一问题,当主页准备就绪时会触发,但不知道是否还有其他方法。如果没有的话,我会把我的代码贴出来作为答案。你找到别的方法了吗?如果你能分享你的代码,我很感兴趣你是如何解决这个问题的。我的工作就是你总是看着主屏幕。但是,通知可以引导您进入任何其他屏幕。是的,这是一个示例。您还可以在加载完数据后立即调用
configure()
方法,而无需经过主屏幕并直接按下所需屏幕。