iOS本地通知UILocalNotification

UILocalNotification *notification=[[UILocalNotification alloc] init];
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, 如果需要音效,在此函数中自己实现音效播放即可


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值