应用程序是不是需要对在 FCM 中使用或不使用 delivery_receipt_requested 的消息采取不同的处理方式?

Posted

技术标签:

【中文标题】应用程序是不是需要对在 FCM 中使用或不使用 delivery_receipt_requested 的消息采取不同的处理方式?【英文标题】:Does the app need to act differently on messages received with and without delivery_receipt_requested in FCM?应用程序是否需要对在 FCM 中使用或不使用 delivery_receipt_requested 的消息采取不同的处理方式? 【发布时间】:2016-08-05 03:45:39 【问题描述】:

根据Firebase Cloud Messaging documentation,如果app server在upstream message中设置了“delivery_receipt_requested”字段,app确认收货时会收到delivery确认。但是,它仅在应用服务器与 XMPP 连接服务器连接时才有效。它不适用于 HTTP 连接服务器。

我是 GCM/FCM 的新手,还没有设置我的服务器。因此,我正在使用 Firebase 控制台来测试我的应用程序的通知收据。

所以,以下是我的疑问。

    “delivery_receipt_requested”字段会被发送到应用程序还是连接服务器本身会消耗它? 如果应用程序在通知中收到此字段,它是否需要与不包含此字段的通知采取不同的行动。?

非常感谢任何对使用该字段的文档或示例实现的引用。

提前致谢。

【问题讨论】:

【参考方案1】:

“delivery_receipt_requested”字段会被发送到应用程序还是连接服务器本身会消耗它?

安装在 Google Play 服务中的 FCM 客户端将处理此问题。 应用程序不会注意到任何不同。

如果应用在通知中收到此字段,它是否需要与不包含此字段的通知采取不同的行为?

应用程序不需要执行任何操作。确实该应​​用不会收到此字段。


更长的解释

    delivery_receipt 并不完全是确认应用收到了消息,而是确认设备收到了消息。需要明确的是,在消息正在传递给应用。 此功能在应用程序之外实现。因此应用程序不需要知道此消息需要送达回执 您可以通过在接收消息的方法中调用您的后端来实现更精确的“应用程序交付回执”。 (例如 http 调用:http://mywebsite.com/confirm-msg-processed-successfully.php?id=133

【讨论】:

以上是关于应用程序是不是需要对在 FCM 中使用或不使用 delivery_receipt_requested 的消息采取不同的处理方式?的主要内容,如果未能解决你的问题,请参考以下文章

PushNotifications - iOS,iOS 应用是不是需要安装用于 fcm 通知的 firebase 框架

如何检查 ReportControl 对象上是不是存在 Reportid 或不使用 *ngif?

确定是不是从 FCM 通知调用活动

使用 MQTT 而不是 FCM 的 Android 推送通知

如何检查用户是不是在 FCM 中禁用了通知?

FCM算法文献总结