IOS本地推送通知

转载:http://blog.sina.com.cn/s/blog_621403ef01010zmp.html


第一步:创建本地推送
// 创建一个本地推送
UILocalNotification *notification = [[[UILocalNotification alloc]init] autorelease];
//设置10秒之后
NSDate *pushDate = [NSDate dateWithTimeIntervalSinc

eNow:10];
if (notification != nil) {
      //设置推送时间
      notification.fireDate = pushDate;
      //设置时区
      notification.timeZone = [NSTimeZone defaultTimeZone];
      //设置重复间隔
      notification.repeatInterval = kCFCalendarUnitDay;
      //推送声音
      notification.soundName = UILocalNotificationDefau ltSoundName;
      //推送内容
      notification.alertBody = @"推送内容";
      //显示在icon上的红色圈中的数子
      notification.applicationIconBadgeNumb er = 1;
      //设置userinfo方便在之后需要撤销的时候使用
      NSDictionary*info = [NSDictionarydictionaryWithObject:@"name"forKey:@"key"];
      notification.userInfo = info;
      //添加推送到UIApplication             
      UIApplication *app = [UIApplication sharedApplication];
      [appscheduleLocalNotificatio n:notification]; 
     
}

第二步:接收本地推送
- (void)application:(UIApplication *)applicationdidReceiveLocalNotificat ion:(UILocalNotification*)notification{
      UIAlertView*alert = [[UIAlertView alloc] initWithTitle:@"iWeibo"message:notification.alertBody delegate:nil cancelButtonTitle:@"确定"otherButtonTitles:nil];
      [alertshow];
      //图标上的数字减1
      application.applicationIconBadgeNumb er -= 1;
}

第三步:解除本地推送
// 获得 UIApplication
UIApplication *app = [UIApplication sharedApplication];
//获取本地推送数组
NSArray *localArray = [app scheduledLocalNotificati ons];
//声明本地通知对象
UILocalNotification *localNotification;
if (localArray) {
      for(UILocalNotification *noti in localArray) {
              NSDictionary *dict = noti.userInfo;
              if (dict) {
                      NSString *inKey = [dict objectForKey:@"key"];
                      if ([inKey isEqualToString:@"对应的key值"]) {
                              if (localNotification){
                                      [localNotification release];
                                      localNotification = nil;
                              }
                              localNotification = [noti retain];
                              break;
                      }
              }
      }
     
      //判断是否找到已经存在的相同key的推送
      if(!localNotification) {
              //不存在初始化
              localNotification = [[UILocalNotification alloc] init];
      }
     
      if(localNotification) {
              //不推送 取消推送
              [app cancelLocalNotification:localNotification];
              [localNotification release];
              return;
      }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值