使用APNS发送远程推送通知的发送报告 – IOS

我正在使用APNS发送远程推送通知。 要求是将通知发送给应用程序用户时(即使用户未点击通知或甚至没有看到通知),根据通知ID i向Web服务器发送送达回执(即调用Web服务)接收。

APNS没有提供交付报告。 他们是APNS的反馈服务,但也不提供交付报告。

所以我想知道获得远程推送通知的交付报告的可能方法是什么。 如果我能够在APP deligate或其他任何其他远程推送通知到达时执行自定义方法,即使APP处于后台或由用户终止,那么它将解决我的问题。

任何帮助将受到高度赞赏。

下面是我目前正在使用的代码,当应用程序处于后台时它无法正常工作。

我写了一个自定义方法

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 

向服务器发送确认收到通知的确认。 当应用程序在前台时,所有function都完美地执行。 但是当应用程序处于后台时会出现问题。 写的自定义方法

  -(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 

直到用户通过点击通知栏打开应用程序才执行,如果用户通过点击应用程序图标而不是通知栏打开应用程序,则不会执行。

由于Apple没有提供任何方法来了解推送通知何时传递给用户的设备。 这是你能做的,

1)在您的应用中添加“通知服务扩展”

2)现在添加用于调用webservice的代码,以在didReceiveNotificationRequest中向服务器报告正在接收的通知。

3)现在转到您的应用程序的function ,并在“后台模式”中启用“后台获取

4)现在通过您发送的通知,传递“content-available = 1” ,这将唤醒您的应用程序30秒,它可以执行didReceiveNotificationRequest中编写的代码。

它对我有用。

为什么你需要知道这个? 您知道他们是否真的在他们的设备上收到通知的目的是什么目的?

无论如何,请使用: https : //developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html#//apple_ref/doc/uid/TP40008194-CH10-SW8

它会在后台唤醒你的应用程序30秒来处理它。 您需要添加RemoteNotifications后台function。

如果每小时发送的数量太多,Apple会限制它们或者不发送它们。