【问题标题】:Flutter cloud message and notificationFlutter 云消息和通知
【发布时间】:2019-11-22 08:05:51
【问题描述】:

我正在尝试使用云消息和通知构建功能。首先我尝试让 FCM 自动显示通知及其工作并始终接收消息。但是当单击通知时它只会弹出到主路由。我想要一个像我这样的功能可以弹出到特定路由或弹出多条路由(例如先弹出主路由,然后在顶部弹出聊天室路由,使用户可以按“返回”按钮返回主路由)。然后我尝试使用Flutter Local Notifications Plugin。但似乎这个应用程序终止时库不显示通知仅在应用程序为后台或前台时显示。有人有更好的方法吗?

【问题讨论】:

    标签: flutter notifications google-cloud-messaging


    【解决方案1】:

    您首先需要配置应用程序以接收点击事件(配置 FLUTTER_NOTIFICATION_CLICK),如https://pub.dev/packages/firebase_messaging#android-integration 中所述

    然后您需要配置应用程序以接收来自通知的数据:

    class _HomePageState extends State<HomePage> {
    
      final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
    
      @override
      void initState() {
        super.initState();
        _firebaseMessaging.configure(
          onMessage: (Map<String, dynamic> message) async {
            print("onMessage: $message");
            Navigator.of(context).popUntil(ModalRoute.withName('/'));
            Navigator.of(context).pushNamed('AlternativeRouteName');
          },
          onLaunch: (Map<String, dynamic> message) async {
            print("onLaunch: $message");
            Navigator.of(context).pushNamed('AlternativeRouteName');
          },
          onResume: (Map<String, dynamic> message) async {
            print("onResume: $message");
            Navigator.of(context).popUntil(ModalRoute.withName('/'));
            Navigator.of(context).pushNamed('AlternativeRouteName');
          },
        );
    

    (阅读此部分以了解更多关于在 iOS 和 Android 中触发的事件https://pub.dev/packages/firebase_messaging#receiving-messages

    那么就可以根据Message的数据触发正确的Route了……

    【讨论】:

    • 我不知道这与我的问题有关吗?这只是 fcm 设置的基础如果您使用 fcm,您必须知道它。问题是 fcm 不会在应用程序终止时显示。
    • 仅在数据消息时才会发生。如果您发送带有数据的通知,它将起作用...
    • 是的,我知道。但问题是当您单击通知选项卡时如何弹出特定路线或弹出多条路线。不仅仅是打开应用程序。这就是我在这个问题中要问的问题。
    • 我编辑了我的答案....您必须在根路由中开始消息传递。他们可以使用pushNamedNavigator.of(context).popUntil(ModalRoute.withName('/'));,他们可以使用Navigator.of(context).pushNamed('AlternativeRouteName');
    • 我对这 3 个回调的工作原理有很大的误解,因为我阅读文档太快了。对不起,这是我的错。你是对的。
    猜你喜欢
    • 2021-07-22
    • 2019-12-30
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 2020-06-19
    • 1970-01-01
    • 2020-11-23
    相关资源
    最近更新 更多