如何判断用户是否通过iOS 7远程通知后台模式通知应用程序?

前端之家收集整理的这篇文章主要介绍了如何判断用户是否通过iOS 7远程通知后台模式通知应用程序?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
根据 didReceiveRemoteNotification when in background,我们以前能够通过单击推送通知上的操作按钮(或者在推送通知上滑动,取决于用户如何看到推送通知)来通过实现-application:didReceiveRemoteNotification来处理用户打开应用程序:然后在方法内部检查应用程序的applicationState是否未激活.

在iOS 7中,有新的远程通知后台模式,允许应用程序在向用户显示远程通知时执行后台获取(用户无需对通知执行任何操作).要支持此模式,您应该实现-application:didReceiveRemoteNotification:fetchCompletionHandler:方法.

The documentation for -application:didReceiveRemoteNotification:说如果你的应用程序委托实现了应用程序:didReceiveRemoteNotification:fetchCompletionHandler:method,那么“app对象会调用方法而不是这个方法.”这意味着我们不能再使用-application:didReceiveRemoteNotification:来处理远程通知,因为它不会被调用.

我们应该把处理逻辑放在应用程序中:didReceiveRemoteNotification:fetchCompletionHandler :,但是之前处理它的技巧不再有意义 – 以前,我们依赖于-application的唯一方法:didReceiveRemoteNotification:当被调用时如果用户点击通知上的操作按钮以打开应用程序,则应用程序处于非活动状态.但是,现在,远程通知后台模式的重点在于它可以在每次收到远程通知时在后台调用application:didReceiveRemoteNotification:fetchCompletionHandler:在用户对其执行任何操作之前.

那么,我们现在怎样才能告诉用户何时使用通知上的操作按钮打开应用程序?

解决方法

您仍然在应用程序中检查应用程序状态:didReceiveRemoteNotification:fetchCompletionHandler:

> UIApplicationStateBackground – 应用程序在后台接收推送通知> UIApplicationStateInactive – 应用程序正在从用户点击通知打开

猜你在找的iOS相关文章