即使应用程序在后台运行且未打开,WhatsApp如何知道用户是否获得了推送通知?

use*_*189 11 iphone xcode objective-c push-notification apple-push-notifications

我已经问过相关的问题: 知道苹果应用程序是否获得推送通知的任何选项?

我得到了一个答案,当应用程序在后台并且用户没有打开时,无法知道推送通知是否到达iPhone ...

但我发现了一些有趣的东西:我用WhatsApp带了2部iPhone.我打开,在第一部iPhone,WhatsApp并退出它(WhatsApp现在在后台),然后用第二部iPhone,我发送WhatsApp按摩到第一部iPhone.

当WhatsApp的推送通知到达第一个iPhone时,我可以在消息附近看到两个"V"(符号)(我不打开推送通知).在此之后,我在第一部iPhone中关闭了互联网和3G,并再次将WhatsApp消息与第二部iPhone一起发送到第一部iPhone. - 我可以看到按摩附近只有一个"V"(不读 - 不通过推送通知).

现在,在第一部iPhone上重新启用互联网后,我收到推送通知后,我可以看到两个"V"(再次 - 我不打开推送通知).

它是如何工作的?当WhatsApp在后台运行时,WhatsApp如何知道iPhone是否收到推送通知?

Kri*_*izz 6

让我们在关闭WhatsApp应用程序的情况下调用iPhone - 接收器和您发送消息的其他iPhone - 发件人,让我们使用通用术语应用程序而不是WhatsApp

发送方的应用程序无法获知推送通知已到达接收方.这是推送通知的本质.

但是,发送方可以向接收方的应用程序发送另一个 - 不是推送通知,而是专有协议 - 消息,它(接收方)欢迎以任何特定于应用程序的方式向发送方确认.

所以,我猜(我不知道 - 我与WhatsApp无关),你得到的双v图标是应用程序消息到达接收器的应用程序时- 与推送通知无关.

  • @ user1273189 [可能在某种程度上](http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072- CH4-SW20) (2认同)