我想,当应用程序通过在通知点击启动我的应用程序做具体的事情。 我想要做的这些具体的事情,当应用程序已经通过的通知点击运行到后台,而且当应用程序被启动从头开始(不运行到后台)。
当应用从后台通过在通知点击开始,我获得通过的通知:
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
=>没问题!
当应用程序是从头开始通过在通知点击开始,我想通过得到通知:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
}
但是launchOptions始终是零! 当应用程序是从头开始通过应用程序图标(正常),而且当应用程序是从头开始通过点击开始通知(不正常),点击开始是零。
任何人都知道如何解决这个问题?
谢谢 !!!
编辑1
下面是如何我的通知创建(乔的问题):
NSDictionary *userInfo = [NSDictionary dictionaryWithObjects:
[NSArray arrayWithObjects:notifText,latitudeString,longitudeString,nil]
forKeys:[NSArray arrayWithObjects:@"notifText",@"latitude",@"longitude", nil]];
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
localNotif.fireDate = itemDate;
localNotif.timeZone = [NSTimeZone defaultTimeZone];
localNotif.alertBody =msg;
localNotif.alertAction = @"Ok";
localNotif.soundName = UILocalNotificationDefaultSoundName;
localNotif.applicationIconBadgeNumber = 1;
localNotif.userInfo = userInfo;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
[localNotif release];
编辑2(回答我的问题!:))
下面是我用来调试我的应用程序,但...这个程序是错误的!
- 我建立了我的调试器中的“编辑计划”菜单中的“等待MyApp.app启动”选项
- 我开始了我与XCode的应用程序第一时间(从头开始推出)的XCode显示“等待我的MyApp的推出” =>我点击我的应用程序图标来启动应用程序
- 应用启动=>我按了home键=>显示通知
- 我点击Xcode中停止按钮再次关闭我的XCode =>的XCode显示重新启动它的应用程序中的“等待我的MyApp的推出”的消息=>我点击状态栏来启动应用程序通知
- => launchOptions是零!
launchOptions等于零是由于这样的事实,重振与Xcode中的应用程序(在这种情况下,与“等待我的MyApp的启动”选项)删除通知,即使是在状态栏仍显示...
为了能够调试检查什么是launchOptions的通过的通知点击从头开始应用的重新开张后的内容,似乎唯一的办法就是通过Tammo福瑞斯在答复中提到,以显示在UIAlert此内容。 所以,请使用下在这种特殊情况下进行调试:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"options" message:[launchOptions[UIApplicationLaunchOptionsLocalNotificationKey] description] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
return YES;
}
感谢你的帮助 !!!!