我们如何知道通知到达iOS设备?

时间:2016-12-27 09:15:13

标签: ios objective-c push-notification

我正在向多个iOS设备发送通知。是否有任何方法可以知道用户实际收到通知并且用户点击了通知?

3 个答案:

答案 0 :(得分:1)

无法做到这一点,因为APNS只会向目标令牌发送推送通知。有一些验证过程报告令牌无效。

我认为你应该实现自己的逻辑来做到这一点,所以当点击通知时,你会得到你的回调: https://developer.apple.com/reference/uikit/uiapplicationdelegate/1623013-application 并呼叫用户实际点击通知的后端(通知发件人)。

希望澄清。

答案 1 :(得分:0)

尝试设置一些处理程序以便用户单击通知事件 - 您可以执行某些操作,例如向服务器发送有关此事件的请求

答案 2 :(得分:0)

正如Christian所解释的那样,您可以按照以下两个步骤开发自己的逻辑:

1)当用户收到通知时,推送通知的委托方法,对于objective-c

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

和斯威夫特

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject])

变得活跃。在此方法中,可以使用一些参数调用Web服务调用以标识通知中的消息。

** 2)**完成第一步后,用户点击通知阅读消息,然后再次调用另一个带有一些参数的Web服务,以识别用户是否已阅读该消息。为此,您可以在objective-c:

中编写Web服务逻辑
-(void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void (^)())completionHandler

对于swift:

func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forRemoteNotification userInfo: [NSObject : AnyObject], completionHandler: () -> Void)