http://www.devdiv.com/thread-69786-1-1.html
UILocalNotification *notification=[[UILocalNotification alloc] init];
if (notification!=nil)
{
NSDate *now=[NSDate new];
notification.fireDate = [now dateByAddingTimeInterval:period];
NSLog(@"%d",period);
notification.timeZone=[NSTimeZone defaultTimeZone];
//设置提醒声音为默认的声音
//notification.soundName=UILocalNotificationDefaultSoundName;
notification.soundName = @"
ping.caf"; //设置显示声音
//notification.alertBody=@"TIME!";
notification.alertBody = [NSString stringWith Format:@"@% 时间到了!",nameStr];//显示的提示信息
NSDictionary* info = [NSDictionary dictionaryWithObject:uniqueCodeStr forKey:CODE];
notification.userInfo = info;
[[UI Application sharedApplication] scheduleLocalNotification:notification];
}
设置的时间到了以后,会自动在 桌面弹出一个提示框,点显示后,就 可以启动 软件。然后在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
if (localNotif)
{
NSLog(@"Recieved Notification %@",localNotif);
NSDictionary* infoDic = localNotif.userInfo;
NSLog(@"userInfo description=%@",[infoDic description]);
NSString* codeStr = [infoDic objectForKey:CODE];
}
}里,对lanchOptions进行处理,找到它里面的信息,就可以拿到设置时的需要处理的东西,就可以 继续操作了。
如果此时你的 客户端 软件仍在打开,则会调用
- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif
{
}
一样的 处理方法。
在程序中取消已经设定的通知的方法了:
NSString *myIDToCancel = @"some_id_to_cancel";
UILocalNotification *notificationToCancel=nil;
for(UILocalNotification *aNotif in [[UIApplication sharedApplication] scheduledLocalNotifications])
{
if([aNotif.userInfo objectForKey:@"ID"] isEqualToString:myIDToCancel])
{
notificationToCancel=aNotif;
break;
}
}
[[UIApplication sharedApplication] cancelLocalNotification:notificationToCancel];
NSString *myIDToCancel = @"some_id_to_cancel";
UILocalNotification *notificationToCancel=nil;
for(UILocalNotification *aNotif in [[UIApplication sharedApplication] scheduledLocalNotifications])
{
if([aNotif.userInfo objectForKey:@"ID"] isEqualToString:myIDToCancel])
{
notificationToCancel=aNotif;
break;
}
}
[[UIApplication sharedApplication] cancelLocalNotification:notificationToCancel];