我想知道Whatsapp这样的应用程序如何能够向邮件的发件人发送邮件收据(双绿色检查)。推送通知代码执行(强制退出应用程序)
即使您强制退出Whatsapp(使用应用程序任务切换器并将应用程序划过应用程序),发件人仍会在接收到推送通知时收到送达回执(双绿色检查)电话。很明显,他们能够在收到推送通知时执行代码(向后端发出请求,通知交付)。
由于iOS7可以发送推送通知有效载荷与“内容可用”:1,这使通知的接收器执行用户代码,所以,我首先以为他们正在使用此功能。 但是,如果用户强制退出应用程序,那么在接收通知时用户代码不会被执行。正因为如此,我无法模仿Whatsapp的行为。
我已启用功能>背景模式并检查远程通知。
我管这种方法的通知:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
我发送通知,该有效载荷:
{
"aps":{
"alert":"Hello world",
"sound":"MySound.wav",
"content-available":1
}
}
我已经检查:
- Will iOS launch my app into the background if it was force-quit by the user?
- WWDC视频Whats New With Mu ltitasking(#204 WWDC 2013)
我也读到PushKit(虽然我没有尝试),也许可以帮助在这里,但我的理解是,应用程序将需要一个VOIP应用。很明显,我不想在我的应用程序上要求VOIP在接收推送通知时执行代码。
谢谢。
谢谢Baris。无论应用程序是否强制退出,我都会收到两个绿色(灰色)标记,只是收到推送通知。那么我会猜测他们正在使用VoIP。我做了一些更多的研究和测试,发送消息给已安装Whatsapp的iOS7上没有VoIP推送的设备(PushKit适用于iOS> = 8),在这种情况下,我没有得到两个绿色(灰色)标记,所以我可以得出结论,我的理论(他们使用PushKit VoIP推送)是正确的。 – fernandospr