• IOS实现本地通知推送功能
  • 黑色平底锅 发表于 2015/10/16 15:23:00 | 分类标签: ios开发 信息推送
  • 在现在的移动设备中,好多应用性的APP开发都用到了推送服务,但是有好多推送的内容,比如有的只是单纯的进行推送一个闹钟类型的,起了提醒作用,有的则是推送的实质性的内容,这就分为推送的内容来区别用什么推送,现有的推送有 极光推送,友盟推送,个推,百度推送,APNS的苹果服务器推送,目前我所了解的有这几种,可能还有很多的推送sdk ,我还没接触过,不过我所接触过的码神和我这样的码农,我所了解他们使用的极光推送居多。

    下面来说下推送流程 ,我只说我对推送的理解和我项目中所用到的推送的我的具体做法。。

    单纯的推送提醒功能,不做什么特定的推送服务

    推送的步骤如下

    1. 创建  UILocationNotification
    2. 设置处理通知的时间fireDate
    3. 配置通知的内容:通知主体、通知声音、图标文字等
    4. 配置通知传递的自定义数据(可选)
    5. 调用通知</span>
    如果项目中单纯用的推送是为了提醒作用完全可以只用一个通知来处理就可以,注册通知的方法需要在appdelegate 里面进行设置,具体代码如下

    当你确定要点击使用通知的时候的代码如下
    1. - (void)viewDidLoad {  
    2.     [super viewDidLoad];  
    3.     NSString * path=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];  
    4.     NSLog(@"%@",path);  
    5.     NSURL * url=[NSURL URLWithString:@"http://localhost/logo.php?userName=jereh&pwd=123"];  
    6.     NSMutableURLRequest * request=[NSMutableURLRequest requestWithURL:url];  
    7.     request.cachePolicy=NSURLRequestReturnCacheDataElseLoad;  
    8.     NSOperationQueue *mainQueue=[NSOperationQueue mainQueue];  
    9.     NSURLCache * catche=[NSURLCache sharedURLCache];  
    10.     [catche removeCachedResponseForRequest:request];  
    11.     [catche removeAllCachedResponses];  
    12.     NSCachedURLResponse * res= [catche cachedResponseForRequest:request];    
    13.     NSLog(@"===%d",res==nil);  
    14.     [NSURLConnection sendAsynchronousRequest:request queue:mainQueue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {  
    15.     }];  
    16. }  

    注册通知,点击按钮进行通知的时候调用
    1. //注册通知,点击按钮进行通知的时候调用  
    2. - (IBAction)setAlert:(id)sender {  
    3.     UIApplication * application=[UIApplication sharedApplication];  
    4.     //如果当前应用程序没有注册本地通知,需要注册  
    5.     if([application currentUserNotificationSettings].types==UIUserNotificationTypeNone){  
    6.         //设置提示支持的提示方式  
    7. //        UIUserNotificationTypeBadge   提示图标  
    8. //        UIUserNotificationTypeSound   提示声音  
    9. //        UIUserNotificationTypeAlert   提示弹框  
    10.         UIUserNotificationSettings * setting=[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge|UIUserNotificationTypeSound|UIUserNotificationTypeAlert categories:nil];  
    11.         [application registerUserNotificationSettings:setting];  
    12.     }  
    13.     //删除之前的重复通知  
    14.     [application cancelAllLocalNotifications];  
    15.     //添加本地通知  
    16.     NSDate * date=[NSDate dateWithTimeIntervalSinceNow:10];  
    17.       [self LocalNotificationSleep:date];  
    18. }  

    要注意这里,在不使用通知的时候记得要把通知删除,不然什么时候他都会给你发送通知
    1. #pragma mark - 添加本地通知  
    2. - (void) LocalNotificationSleep:(NSDate *) date{    
    3.     UILocalNotification * noti=[[UILocalNotification alloc] init];  
    4.     //设置开始时间  
    5.     noti.fireDate=date;  
    6.     //设置body  
    7.     [email protected]"你有一条消息提醒,请查收!";  
    8.     //设置action  
    9.     [email protected]"详情";  
    10.     //设置闹铃  
    11.     [email protected]"4195.mp3";  
    12. #warning 注册完之后如果不删除,下次会继续存在,即使从模拟器卸载掉也会保留  
    13.     //注册通知  
    14.     [[UIApplication sharedApplication] scheduleLocalNotification:noti];  
    15. }  


  • 请您注意

    ·自觉遵守:爱国、守法、自律、真实、文明的原则

    ·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规

    ·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品

    ·承担一切因您的行为而直接或间接导致的民事或刑事法律责任

    ·您在编程中国社区新闻评论发表的作品,本网站有权在网站内保留、转载、引用或者删除

    ·参与本评论即表明您已经阅读并接受上述条款

  • 感谢本文作者
  • 作者头像
  • 昵称:黑色平底锅
  • 加入时间:2013/6/13 0:00:00
  • TA的签名
  • 这家伙很懒,虾米都没写
  • +进入TA的空间
  • 以下内容也很赞哦
分享按钮