选择推送通知标题时调用的方法

问题描述:

我有一个推送通知,我正在向用户发送,我希望能够在用户点击时执行操作。我知道,如果应用程序是在前台,后台,或者如果用户点击从通知中心提醒,下列方法在应用代表呼吁:选择推送通知标题时调用的方法

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

但是,如果应用程序是不是启动并且用户在通知到达时轻按通知横幅,此方法似乎不会被调用。他们是否需要在这种情况下实施不同的方法?他们的其他案例也应该采用其他方法吗?

如果您在点击通知标题时未启动应用程序,那么您将在您的application:didFinishLaunchingWithOptions:中收到一个NSDictionary。

然后,你可以做这样的事情:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    NSDictionary *pushDict = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 
    if(pushDict) 
    { 
    [self application:application didReceiveRemoteNotification:pushDict]; 
    } 
} 

此外,在application:didReceiveRemoteNtification:方法,你可以测试你的应用程序是在收到通知的时间不活动,像这样:

-(void)application:(UIApplication *)app didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 
    if([app applicationState] == UIApplicationStateInactive) 
    { 
    NSLog(@"Received notifications while inactive."); 
    } 
    else 
    { 
    NSLog(@"Received notifications while active."); 
    } 
+0

didFinishLaunchingWithOptions中的部分是我所错过的 - 谢谢! – lehn0058 2012-08-13 00:57:13