【问题标题】:How to get delivery status of an iOS push notification, when the app is NOT in the background?当应用程序不在后台时,如何获取 iOS 推送通知的传递状态?
【发布时间】:2016-05-18 21:12:18
【问题描述】:

我已经研究了一段时间,但想不出办法。

在 WhatsApp 和其他一些 iOS 聊天应用程序中会发生以下情况。

  • 消息接收者强制关闭应用(应用不在后台运行)
  • 发件人发送消息。
  • 接收方收到 APNS 推送通知。
  • 发件人将状态视为Delivered

有趣的是,它在设备关闭的情况下仍然可以做到这一点。

假设接收器的设备已关闭。然后发生以下情况。

  • 发件人发送消息。
  • 发件人将状态视为Sent(对服务器)
  • 接收器打开手机(但应用未在后台运行)
  • 接收方在设备上收到推送通知(但未打开)
  • 发件人将状态视为Delivered

GCM有投递状态,通过APNS我们可以在后台运行应用时查看投递状态。

由于APNS没有投递状态反馈服务,它怎么知道对方什么时候收到了消息,即使应用程序没有在后台运行?

【问题讨论】:

  • 你找到什么机制了吗?

标签: ios push-notification xmpp apple-push-notifications


【解决方案1】:

APNS/GCM 消息由特殊系统服务接收,而不是由您使用的应用程序接收。因此,当您打开手机时,该服务会收到消息并向 Apple/Google 服务器发送新状态,并向用户显示通知。

【讨论】:

  • 是的,但我试图弄清楚在收件人收到消息后,像 WhatsApp 这样的应用程序如何获得消息传递确认(传递收据)。我知道如果应用程序在后台运行可以做到这一点,但在这种情况下,服务器知道消息何时传递,即使应用程序没有在后台运行。
  • 聊天应用中的送货回执不是推送通知,而是由应用在其常规消息渠道中推送的送货回执
猜你喜欢
  • 2022-09-23
  • 2013-01-30
  • 1970-01-01
  • 1970-01-01
  • 2016-01-16
  • 2015-08-31
  • 1970-01-01
  • 2017-06-26
相关资源
最近更新 更多