应用程序是不是需要对在 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?