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, 如果需要音效,在此函数中自己实现音效播放即可