【问题标题】:Triggering a snackbar when a notification is received via FCM通过 FCM 收到通知时触发小吃吧
【发布时间】:2020-08-27 10:13:38
【问题描述】:

目前,onMessage 函数将显示一个 AlertDialog。此功能运行良好。

但是,我想在应用处于前台时显示一个小吃栏。

有人有这方面的例子吗?

我当前的初始化状态:

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);
  },
);

}

【问题讨论】:

    标签: flutter dart firebase-cloud-messaging


    【解决方案1】:

    用这个代替showDialog:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      • 2019-08-17
      • 1970-01-01
      • 1970-01-01
      • 2019-09-08
      • 2018-01-10
      • 1970-01-01
      相关资源
      最近更新 更多