Ios5 iOS 5横幅推送通知消失,用户点击应用图标启动应用

Ios5 iOS 5横幅推送通知消失,用户点击应用图标启动应用,ios5,push-notification,banner,Ios5,Push Notification,Banner,使用iOS 5,推送通知可以显示为横幅,几秒钟后消失。 我知道当用户点击横幅时,将调用DidReceiveEmotentification 我的问题是,如果横幅消失了,我的用户看到应用程序上有一个徽章号码,他们会点击应用程序图标启动应用程序。现在,如果应用程序在后台运行,我如何检查应用程序是否被带到前台,是否有通知,并执行必要的操作 我的通知的目的基本上是通知用户应用程序内容已经更新,并鼓励他们运行应用程序以获取最新内容。我的应用程序只在启动时检查最新内容,不定期检查更新。这个问题有点老了,但我

使用iOS 5,推送通知可以显示为横幅,几秒钟后消失。 我知道当用户点击横幅时,将调用DidReceiveEmotentification

我的问题是,如果横幅消失了,我的用户看到应用程序上有一个徽章号码,他们会点击应用程序图标启动应用程序。现在,如果应用程序在后台运行,我如何检查应用程序是否被带到前台,是否有通知,并执行必要的操作


我的通知的目的基本上是通知用户应用程序内容已经更新,并鼓励他们运行应用程序以获取最新内容。我的应用程序只在启动时检查最新内容,不定期检查更新。

这个问题有点老了,但我还是会弹出我在这里找到的内容

您需要在应用程序委托中实现两种方法,以检查应用程序是从远程通知启动的(从应用程序未在设备上运行时开始),还是在运行时收到远程通知(在后台或前台)

第一个是应用程序委托中已存在的方法:

-(BOOL)应用程序:(UIApplication*)应用程序使用选项完成启动:(NSDictionary*)启动选项

要检查这是否是从远程通知启动的,请使用以下类似代码:

// Check to see if launched from notification
if (launchOptions != nil)
{
    NSDictionary* dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
    if (dictionary != nil)
    {
        NSLog(@"Launched from push notification: %@", dictionary);
        // DO SOMETHING HERE
    }
}
您需要实现的另一种方法专门用于应用程序运行时的应用程序:

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    NSLog(@"Received notification: %@", userInfo);
}
你如何处理来自那里的通知取决于你,但这就是你的应用程序知道它的方式

在第二种方法中,您可以检查所传递应用程序的UIApplicationState,以确定您是在前台还是后台