flutter - 通过 FCM 收到通知时触发小吃吧

标签 flutter dart firebase-cloud-messaging

目前,onMessage 函数将显示一个 AlertDialog。此功能工作正常。
但是,当应用程序在前台时,我想显示一个 snackbar 。
有没有人有这方面的例子?
我当前的初始化状态:

void initState() {
super.initState();
getCurrentUser();
extractMachineIDs(); //IGNORE
getMachineStatus(0); //IGNORE
_fcm.configure(
  onMessage: (Map<String, dynamic> message) async {
    print("onMessage: $message");
    showDialog(   // I WANT A SNACKBAR HERE INSTEAD
      context: context,
      builder: (context) => AlertDialog(
        content: ListTile(
          title: Text(message['notification']['title']),
          subtitle: Text(message['notification']['body']),
        ),
        actions: <Widget>[
          FlatButton(
            child: Text('DISMISS'),
            onPressed: () => Navigator.of(context).pop(),
          ),
        ],
      ),
    );
  },
  onLaunch: (Map<String, dynamic> message) async {
    print("onLaunch: $message");
  },
  onResume: (Map<String, dynamic> message) async {
    print("onResume: $message");
    Navigator.pushNamed(context, AlertsNotifications.id);
  },
);
}

最佳答案

用这个代替showDialog :

final snackBar = SnackBar(
  content: Text('Yay! A SnackBar!'),
  action: SnackBarAction(
    label: 'Some Text',
    onPressed: () {
      // Some code.
    },
  ),
);
Scaffold.of(context).showSnackBar(snackBar);

关于flutter - 通过 FCM 收到通知时触发小吃吧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63613808/

相关文章:

iOS FCM 通知在后台不工作

android - 如何使用 Flutter 让后台应用每天下午 2 点打开一个对话框?

flutter 多状态管理

flutter - 如何从测试中访问 Flutter 环境变量?

asynchronous - 如何在 flutter 应用程序中显示 5 分钟不可停止的计时器?

dart - Web动画可以在Dart中使用吗?

flutter - 首次启动 flutter 应用程序时如何添加教程

ios - 如何让 setInitialRoute 在不同的 View 上启动我的 Flutter iOS 应用程序?

android - Flutter 推送通知与 FirebaseMessaging ^8.0.0-dev.14

android - Firebase 云消息传递不同的 key