当前位置: 首页 > 知识库问答 >
问题:

Flutter Firebase消息传递-当应用程序打开时不显示推送通知

沈冠宇
2023-03-14

我是flutter的新手,我只是试图接收firebase推送通知到我的flutter应用程序。当应用程序关闭时,在后台接收推送通知。但是当应用程序打开时,推送通知正在接收,但它不显示警报通知(如果它打开了,我想在我的应用程序中显示推送通知的标题和正文作为警报)。这是我的代码。

_fcm.configure(
      onMessage: (Map<String, dynamic> message) async {
        showDialog(
          context: context,
          builder: (context) => AlertDialog(
            content: ListTile(
              title: Text(message['notification']['title']),
              subtitle: Text(message['notification']['body']),
            ),
            actions: <Widget>[
              FlatButton(
                child: Text('Ok'),
                onPressed: () => Navigator.of(context).pop(),
              ),
            ],
          ),
        );
        print("onMessage: $message");
      },
      onLaunch: (Map<String, dynamic> message) async {
        print("onLaunch: $message");
        
      },
      onResume: (Map<String, dynamic> message) async {
        print("onResume: $message");
      },
    );

谁能帮我做这个吗?

共有1个答案

曾瀚昂
2023-03-14

最后,我能够通过使用overlay_support包来管理我的问题

我参考了以下问题链接:

Flutter-Firebase消息快捷键未显示

return OverlaySupport(
            child: MaterialApp(....
               
          ));

然后将showoverlaynotification添加到我的_fcm.configure-->onmessage:

_fcm.configure(
      onMessage: (Map<String, dynamic> message) async {
        print("onMessage: $message");
        showOverlayNotification((context) {
          return Card(
            margin: const EdgeInsets.symmetric(horizontal: 4),
            child: SafeArea(
              child: ListTile(
                leading: SizedBox.fromSize(
                    size: const Size(40, 40),
                    child: ClipOval(
                        child: Container(
                      color: Colors.black,
                    ))),
                title: Text(message['notification']['title']),
                subtitle: Text(message['notification']['body']),
                trailing: IconButton(
                    icon: Icon(Icons.close),
                    onPressed: () {
                      OverlaySupportEntry.of(context).dismiss();
                    }),
              ),
            ),
          );
        }, duration: Duration(milliseconds: 4000));

        print(message['notification']['title']);
      },
      onLaunch: (Map<String, dynamic> message) async {
        print("onLaunch: $message");
      },
      onResume: (Map<String, dynamic> message) async {
        print("onResume: $message");
      },
    );
 类似资料:
  • 我试着用firebase云消息通过控制台发送通知来测试我的应用程序,但当我的应用程序在前台或仍在运行时。设备中不显示通知,并且触发了firebase消息服务中的日志。 这是我的firebasemessagingservice

  • 我通过FCM实现了推送通知。当应用程序从我的服务器获得一个新的通知时,通知面板会被我在notificationcompat.builder中设置的图标所注意,但消息不会作为弹出预览。我尝试设置优先级,样式,类别,但通知仍然没有显示。当我滚动时,我可以看到通知。 我在两种不同的设备操作系统(6.0.1和5.0.1)上尝试了这个应用程序,也是我的后端C#解决方案--两种方法都不弹出通知消息和通知 Fi

  • 我想为一个聊天应用程序实现FCM推送通知服务,我遵循Firebase文档中的步骤,当通知从Firebase控制台发送到我的设备时,我会得到通知。当我尝试使用http post to https://FCM.googleapis.com/FCM/send通过FCM将通知通过服务器端发送到设备时: 当应用程序处于活动状态并且我正在将此通知发送到我的设备时,Im在我的控制台日志中收到以下消息,所以我认为

  • 使用FCM,当应用程序在后台或未运行时,我会在系统托盘中接收推送通知。当应用程序处于前台时,我可以覆盖onMessageReceived并使用创建自己的提示通知。 谢谢 编辑:这里是我通过curl使用的消息负载,以供参考

  • 我正在使用iOS7,我正在尝试确定在以下情况下是否可以获得JSON有效载荷。 我已启用后台模式“远程通知” 当我启动的应用程序从图标本身后的通知已收到我没有得到推在启动选项从 当应用程序从图标手动启动时,以下方法也不会被调用

  • 我正在尝试使用SKYPE4COM从WPF应用程序向iPhone Skype应用程序发送消息。 我们已经做了这些事情: > 注册SKYPE4COM组件。 添加对WPF项目的引用。(VS2013) 通过以下方式发送消息: Skype Skype=新建Skype();skype。附加(skype.Protocol,true);skype。SendMessage(“露西”,“你好吗?”); 我的问题: 一