if (notification!=nil) {
NSDate *now=[NSDate new];
notification.fireDate=[now dateByAddingTimeInterval:10];//10秒后通知
notification.repeatInterval=0;//循环次数,kCFCalendarUnitWeekday一周一次
notification.timeZone=[NSTimeZone defaultTimeZone];
notification.applicationIconBadgeNumber=1; //应用的红色数字
notification.soundName= UILocalNotificationDefaultSoundName;//声音,可以换成alarm.soundName = @”myMusic.caf”
//去掉下面2行就不会弹出提示框
notification.alertBody=@”通知内容”;//提示信息 弹出提示框
notification.alertAction = @”打开”; //提示框按钮
//notification.hasAction = NO; //是否显示额外的按钮,为no时alertAction消失// NSDictionary *infoDict = [NSDictionary dictionaryWithObject:@"someValue" forKey:@"someKey"];
//notification.userInfo = infoDict; //添加额外的信息[[UIApplication sharedApplication] scheduleLocalNotification:notification];
}
[notification release];
UILocalNotification需要4.0版本支持!!
应用程序启动后,当10秒钟过去后,如果应用还是在前台运行,而且应用委托实现- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification方法,则会进入该函数;
如果10秒过后,应用在后台或,则会弹出alert框提示用户;
注意: 对本地通知的数量限制,iOS最多允许最近本地通知数量是64个,超过限制的本地通知将被iOS忽略。
//取消通知
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
application.applicationIconBadgeNumber = 0;
// Add the view controller’s view to the window and display.
[window addSubview:viewController.view];
[window makeKeyAndVisible];
return YES;
}
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
//点击提示框的打开
application.applicationIconBadgeNumber = 0;
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
//当程序还在后天运行
application.applicationIconBadgeNumber = 0;
}
1.当程序在不在前台运行时,系统会自动触发你指定的 soundName alertBody
01.
UILocalNotification* notification = [[UILocalNotification alloc] init];
02.
03.
04.
05.
notification.timeZone = [NSTimeZone defaultTimeZone];
06.
07.
notification.soundName = UILocalNotificationDefaultSoundName;
08.
09.
notification.userInfo = aPlan;
10.
11.
NSString* alertBody = @
"alert message"
;
12.
13.
notification.alertBody = alertBody;
14.
15.
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
16.
17.
[notification release];
2 当程序已经在前台运行时,系统不会触发你指定的soundName alertBody
而是触发AppDelegate中的
01.
- (
void
)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
02.
03.
{
04.
05.
NSDictionary* dict = [notification userInfo];
06.
07.
NSLog(@
"dict = %@"
, dict);
08.
09.
}
其中的dict即为你创建UILocalNotification时候指定的userInfo, 如果需要音效,在此函数中自己实现音效播放即可