【问题标题】:Flutter show app icon badge on push notificationFlutter 在推送通知上显示应用程序图标徽章
【发布时间】:2019-04-22 17:42:59
【问题描述】:

我正在寻找一种在用户收到推送通知时显示应用图标徽章的方法。

我正在使用 Firebase_messaging 插件来处理推送通知,并使用 flutter_app_badger 来处理应用程序图标徽章。 但我想将两者结合起来,以便在不打开应用程序的情况下在图标上设置数字。有可能做到这一点吗?还是我忽略了 firebase_messaging 插件中的明显内容?

对不起,可怕的解释。我希望有人可以帮助我解决这个问题。

【问题讨论】:

  • 徽章值是通知负载的一部分。所以你在你的应用程序中没有任何事情要做(除了在注册通知时需要徽章权限)
  • 我需要在通知负载中添加这个吗?还是每个推送通知都添加到应用图标徽章中?
  • 你必须在有效载荷中添加这个。看developer.apple.com/library/archive/documentation/…,你会看到"badge": 5
  • 这和安卓一样吗?另外我怎么知道要发送哪个号码?据我所知,没有办法检查推送通知是否已打开?
  • 不知道android对不起

标签: flutter push-notification flutter-notification


【解决方案1】:

我怀疑您的图标与设备中的图标指南不兼容。我建议尝试https://pub.dev/packages/flutter_launcher_icons 为您的设备制作图标。

【讨论】:

    【解决方案2】:

    应用图标徽章取决于应用启动器

    部分安卓应用启动器默认包含此功能,您可以在设置->应用->通知上查看 Attached image

    仅供参考

    【讨论】:

      【解决方案3】:

      我认为您在运行应用程序时尝试创建流以实时监听 Firestore 中的文档更改。阅读这里How to listen for document changes in Cloud Firestore using Flutter?

      并且图标可以在后台更新,但我认为不打开应用程序是不可能的。

      【讨论】:

        【解决方案4】:

        我没有直接的答案,因为我以前没有遇到过这个问题,但这可能会解决你的问题

        确保您已正确定义应用程序的图标 - 对于颤振,以下是您应该执行的步骤:

        1. 将包导入您的 pubsec.yaml 文件 - 应将其命名为 flutter_launcher_icons: "^0.8.0" 并在 pubspec.yaml 文件的 dev-dependencies 部分下导入。

        2. 在 dev-dependencies 部分之后,为颤振图标添加一个新部分,如下所示: 颤振图标: IOS:是的 安卓:真 image_path_ios: "{图标文件路径}" image_path_android: "{图标文件路径}"

        希望这对您有所帮助,祝您好运!

        【讨论】:

          【解决方案5】:

          使用https://pub.dev/packages/firebase_messaging 通知通知, 对于 Android 后台通知,您可以将其添加到应用程序标记的 AndroidManifest.xml 文件中。并确保您的可绘制文件夹中存在 androidlogo.png(这是示例名称)。

          <application>
          <meta-data
                  android:name="com.google.firebase.messaging.default_notification_icon"
                  android:resource="@drawable/androidlogo" />
          </application>
          

          如果是前台通知,您必须使用Flutter Local Notifications,因此您可以在初始化时提供相同的信息

          var initializationSettingsAndroid = new AndroidInitializationSettings('androidlogo');
          flutterLocalNotificationsPlugin.initialize(initializationSettings, onSelectNotification: onNotificationClicked);
          

          对于应用程序图标,您可以使用此库https://pub.dev/packages/flutter_launcher_icons,上面的答案也建议使用此库。

          对于 iOS,您的启动器图标将是您的通知图标。

          为了显示徽章图标,您可以使用https://pub.dev/packages/flutter_app_badger。 (适用于支持的手机)。

          因此,使用所有这些,您将获得带有徽章的应用图标和通知图标作为您的应用图标(或由您指定)。

          【讨论】:

          • 我们必须在哪一部分逻辑中更新徽章计数器逻辑?我们正在使用预定的本地通知,我们希望在通知到来时更新徽章计数器。
          猜你喜欢
          • 2021-07-17
          • 1970-01-01
          • 2023-02-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-03-08
          • 2022-08-07
          • 2014-07-18
          相关资源
          最近更新 更多