Flutter 在推送通知上显示应用程序图标徽章
Posted
技术标签:
【中文标题】Flutter 在推送通知上显示应用程序图标徽章【英文标题】:Flutter show app icon badge on push notification 【发布时间】:2019-04-22 17:42:59 【问题描述】:我正在寻找一种在用户收到推送通知时显示应用图标徽章的方法。
我正在使用 Firebase_messaging 插件来处理推送通知,并使用 flutter_app_badger 来处理应用程序图标徽章。 但我想将两者结合起来,以便在不打开应用程序的情况下在图标上设置数字。有可能做到这一点吗?还是我忽略了 firebase_messaging 插件中的明显内容?
对不起,可怕的解释。我希望有人可以帮助我解决这个问题。
【问题讨论】:
徽章值是通知负载的一部分。所以你在你的应用程序中没有任何事情要做(除了在注册通知时需要徽章权限) 我需要在通知负载中添加这个吗?还是每个推送通知都添加到应用图标徽章中? 你必须在有效载荷中添加这个。看developer.apple.com/library/archive/documentation/…,你会看到"badge": 5
这和安卓一样吗?另外我怎么知道要发送哪个号码?据我所知,没有办法检查推送通知是否已打开?
不知道android对不起
【参考方案1】:
我怀疑您的图标与设备中的图标指南不兼容。我建议尝试https://pub.dev/packages/flutter_launcher_icons 为您的设备制作图标。
【讨论】:
【参考方案2】:应用图标徽章取决于应用启动器
部分安卓应用启动器默认包含此功能,您可以在设置->应用->通知上查看 Attached image
仅供参考
How to show notification count on app icon like Facebook?
How does Facebook add badge numbers on app icon in Android?
adding notification badge on app icon in android
【讨论】:
【参考方案3】:我认为您在运行应用程序时尝试创建流以实时监听 Firestore 中的文档更改。阅读这里How to listen for document changes in Cloud Firestore using Flutter?
并且图标可以在后台更新,但我认为不打开应用程序是不可能的。
【讨论】:
【参考方案4】:我没有直接的答案,因为我以前没有遇到过这个问题,但这可能会解决你的问题
确保您已正确定义应用程序的图标 - 对于颤振,以下是您应该执行的步骤:
将包导入您的 pubsec.yaml 文件 - 应将其命名为 flutter_launcher_icons: "^0.8.0" 并在 pubspec.yaml 文件的 dev-dependencies 部分下导入。
在 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。 (适用于支持的手机)。
因此,使用所有这些,您将获得带有徽章的应用图标和通知图标作为您的应用图标(或由您指定)。
【讨论】:
我们必须在哪一部分逻辑中更新徽章计数器逻辑?我们正在使用预定的本地通知,我们希望在通知到来时更新徽章计数器。以上是关于Flutter 在推送通知上显示应用程序图标徽章的主要内容,如果未能解决你的问题,请参考以下文章
如何在后台的android应用程序图标上计算推送通知消息徽章
如何在 android 和 ios 收到的推送通知上设置徽章?