如何使用 FCM 在 Android 上发送高优先级收件箱样式通知?

问题描述 投票:0回答:2

我想使用 FCM 向 Android 设备发送高优先级通知,并将其作为 收件箱样式通知显示在系统托盘中。

FCM不允许您配置Android通知样式服务器端,因此我必须发送Android系统通知客户端,以使用NotificationManager API发送收件箱样式通知。

在没有自动默认样式通知的情况下执行此操作的唯一方法是使用 FCM 数据消息。但是 Firebase Flutter 文档(我正在尝试在 Android Native 和 Flutter 上实现此解决方案,但 Android Native 解决方案就足够了)表明数据消息的优先级较低......

来自 flutterfire 文档

如上所述,纯数据消息被归类为“低优先级”。 如果您的应用程序是,设备可以限制并忽略这些消息 在后台、终止或各种其他条件下,例如 电池电量低或当前 CPU 使用率较高。

您不应依赖仅传送数据的消息。他们应该 仅用于支持应用程序的非关键功能, 例如预取数据,以便用户下次打开您的应用程序时 数据已准备好显示,但如果消息从未发送 那么您的应用程序仍然可以运行并在打开时获取数据。

因此,根据此处提出的前提,似乎不可能在 Android 上发送高优先级收件箱样式通知。这是正确的吗?

android flutter push-notification firebase-cloud-messaging
2个回答
0
投票

我想你还是可以的。即使数据消息默认为普通优先级,您仍然可以按照

doc
中所述手动将其设置为high


0
投票

答案已经存在于 FireFly 文档中,但是它还取决于用于接收通知的 Android 设备的品牌,这些设备也有自己的后台任务优先级,具体取决于电池使用情况和其他因素, 来自FireFly文档的答案:-

消息类型# 消息有效负载可以被视为以下三种类型之一:

仅通知消息:有效负载包含通知属性,该属性将用于向用户呈现可见的通知。

仅数据消息:也称为“静默消息”,此有效负载在数据属性中包含自定义键/值对,可以按照您认为合适的方式使用。这些消息被认为是“低优先级”(稍后会详细介绍)。 通知和数据消息:具有通知和数据属性的有效负载。

根据应用程序的当前状态,传入的有效负载需要不同的实现来处理它们。

当您的应用程序处于后台或终止时,仅数据消息被设备视为低优先级,并将被忽略。但是,您可以通过在 FCM 负载上发送附加属性来显式提高优先级: 在 Android 上,将优先级字段设置为高。 在 Apple(iOS 和 macOS)上,将 content-available 字段设置为 true。

© www.soinside.com 2019 - 2024. All rights reserved.