如何在颤振中显示没有上下文的对话框

Dee*_*mar 5 flutter firebase-cloud-messaging flutter-dialog

我试图使用 firebase 云评估,在此过程中,我想在推送通知到达时向用户显示一个弹出对话框。但为了显示对话,我们需要上下文对象作为showDialogis的参数之一BuildContext

我尝试了很多方法,但没有成功。截至目前,我的代码如下所示:

_firebaseMessaging.configure(
        onMessage: (Map<String, dynamic> message) {
          print('onMessage: $message');
          return;
        },
        onBackgroundMessage: myBackgroundMessageHandler,
        onResume: (Map<String, dynamic> message) {
          print('onResume: $message');
          return;
        },
        onLaunch: (Map<String, dynamic> message) {
          print('onLaunch: $message');
            Text('onLaunch: $message'),
          );
          return;
        });
Run Code Online (Sandbox Code Playgroud)

注意:此代码是在单独的类中编写的,我试图在没有任何第三部分库的情况下实现它。

Cop*_*oad 1

首先,如果没有有效的上下文,则无法显示对话框。你为什么BuildContext不像这样简单地将 a 传递给你的班级呢?

class SeparateClass {
  final BuildContext context;

  SeparateClass(this.context);

  void configure() {
    // your rest of the configuration code
    // you can use showDialog(context, ...) here
  }
}
Run Code Online (Sandbox Code Playgroud)