【问题标题】:How to show a notification badge on the app icon using flutter?如何使用颤振在应用程序图标上显示通知徽章?
【发布时间】:2020-09-10 18:24:15
【问题描述】:

我正在使用 FCM 在 Flutter 应用中推送通知。

我尝试了很多方法和代码,以便在收到新通知并且应用关闭或处于后台时在应用图标顶部显示一个徽章(红点)。

我应该怎么做才能在颤动中获得徽章应用程序图标?

【问题讨论】:

    标签: flutter


    【解决方案1】:

    迟到的答案,但是,关于您的问题,我认为您想像下图一样为应用图标添加计数。

    所以对于这个问题,您可以使用flutter_app_badger。使用这个包,您可以为您的应用图标添加计数。

    要将 flutter_app_badgerFCM 一起使用,您可以使用它

     _firebaseMessaging.configure(
      onMessage: (Map<String, dynamic> message) async {
        print("onMessage: $message");
        //Here you can add the count when you get a notification you can increase the number by one
        FlutterAppBadger.updateBadgeCount(1);
      },
      onBackgroundMessage: myBackgroundMessageHandler,
      onLaunch: (Map<String, dynamic> message) async {
        print("onLaunch: $message");
        //Here you can remove the badge you created when it's launched
        FlutterAppBadger.removeBadge();
      },
      onResume: (Map<String, dynamic> message) async {
        print("onResume: $message");
      },
    );
    

    然后你也可以将它添加到后台通知处理程序中

    Future<dynamic> myBackgroundMessageHandler(Map<String, dynamic> message) async {
       //Here you can add 
       FlutterAppBadger.updateBadgeCount(1);
    
       ...
       // Or do other work.
    }
    

    请记住,只有在有效负载上没有通知时才会触发 On ios 后台处理程序。 您可以在我的 answer 上阅读有关此问题的更多信息。

    【讨论】:

    • 感谢您提到这个包,但我仍然有点困惑它是如何工作的。您的第一个代码部分是否仅在飞镖文件中?触发 FCM 通知的 node.js 函数不需要什么?另外,如果您有不同的 PN 功能,并且您想要一个 updateBadgeCount 而另一个不想要呢?
    • 嘿@MrHarvey,这个包不需要触发云功能。所以我所做的是每当我收到通知(FCM)时,我都会使用这个包来更新计数。是的,第一个代码部分是一个 dart 文件,你如何在 dart 应用程序上配置推送通知。不,在我的实现中你不需要云功能
    • 您好,我的大多数 Android 设备都受支持(我可以在其他应用程序上看到徽章),但它没有显示,您能解释一下原因吗? IOS完美运行
    • @Nobody 嘿,我真的无法解释为什么。在我使用这个包的时候,它在两个平台上都能完美运行。抱歉,我帮不上什么忙。
    • 它不适用于 realme 设备。
    猜你喜欢
    • 2019-04-22
    • 2017-03-08
    • 2020-08-13
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多