如何检测发送到其他应用程序的推送通知?

我似乎无法find一种方式来检测通知何时进来。例如,如果我的应用程序是打开的,并且用户得到Facebook推送通知\,是否有任何UIApplication通知或别的东西,会告诉我,该应用程序是在前景更长,Facebook的警报是顶部? 如果通知是横幅或警报,最好是触发的东西

您无法检测到发送到其他应用程序的推送通知。

如果要检测应用程序是否不在前台,可以使用UIApplicationDelegateapplicationWillResignActive:方法或注册UIApplicationWillResignActiveNotification通知。

但是,当通知横幅出现在顶部时,您的应用程序仍处于前台。 当通知被提示为警报而不是(用户可以在首选项中设置)时,应用程序失去焦点,并且不再处于前台。

顶部的通知横幅是由SpringBoard(另一个进程)显示的窗口,在用户触摸它之前它不会成为关键字。 如果用户将通知向下滑动,通知中心打开,则您的应用程序将变为不活动状态,您的应用程序委托人会听到此消息。 如果用户点击通知,您的应用程序将转到后台,另一个已打开。 如果用户select查看警报而不是横幅,则一旦显示警报,您的应用程序将会退出活动状态。 您可以收听UIApplicationWillResignActiveNotification通知,以了解应用程序何时处于活动状态。