2012-02-08 104 views
0

使用iOS 5,推送通知可以显示为横幅并在几秒后消失。 我明白,当用户点击横幅时,didReceiveRemoteNotification将被调用。iOS 5横幅推送通知消失,用户点击应用程序图标启动应用程序

我的问题是,如果横幅已经消失,并且我的用户看到应用上有徽章编号,他们将点击应用图标启动应用。现在,如果应用程序正在后台运行,我如何检查应用程序是否已进入前台,并且已经发出通知,并执行必要的操作?

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

回答

0

这个问题有点老,但我会弹出我在这里找到的东西。

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

首先是已经在应用程序委托的方法:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

要检查,如果这是从远程通知启动,有类似这样的代码:

// 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以确定您是否处于前景或背景中。

相关问题