本地推送 UILocalNotification

来源:互联网 发布:护国神翼 知乎 编辑:程序博客网 时间:2024/06/17 01:05

初始化本地推送

[java] view plaincopy
  1. - (void)initLocationNotification  
  2. {  
  3.     //初始化  
  4.     UILocalNotification *locationNotification = [[UILocalNotification alloc]  init];  
  5.     //设置推送时间,这里使用相对时间,如果fireDate采用GTM标准时间,timeZone可以至nil  
  6.     locationNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:10];  
  7.     locationNotification.timeZone = [NSTimeZone defaultTimeZone];  
  8.     //设置重复周期  
  9.     locationNotification.repeatInterval = NSWeekCalendarUnit;  
  10.     //设置通知的音乐  
  11.     locationNotification.soundName = UILocalNotificationDefaultSoundName;  
  12.     //设置通知内容  
  13.     locationNotification.alertBody = @"推送测试--balabala";  
  14.     //设置程序的Icon数量  
  15.     locationNotification.applicationIconBadgeNumber = 1;  
  16.     //执行本地推送  
  17.     [[UIApplication sharedApplication] scheduleLocalNotification:locationNotification];  
  18. }  

本地推送执行时会调用UIApplication的协议方法

[java] view plaincopy
  1. - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification  

在此方法中可以获取推送的内容

[java] view plaincopy
  1. - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification  
  2. {  
  3.         NSLog(@"推送信息已经获得: %@",[notification alertBody]);  
  4.     UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:nil message:[notification alertBody] delegate:self cancelButtonTitle:nil otherButtonTitles:@"good", nil] autorelease];  
  5.     [alert show];  
  6. }  

响应结果:



如果使用的是服务器推送,则会进入回调方法:

[java] view plaincopy
  1. - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo