选择推送通知标题时调用的方法
问题描述:
我有一个推送通知,我正在向用户发送,我希望能够在用户点击时执行操作。我知道,如果应用程序是在前台,后台,或者如果用户点击从通知中心提醒,下列方法在应用代表呼吁:选择推送通知标题时调用的方法
- (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.");
}
didFinishLaunchingWithOptions中的部分是我所错过的 - 谢谢! – lehn0058 2012-08-13 00:57:13