码迷,mamicode.com
首页 > 其他好文 > 详细

推送机制

时间:2015-07-07 12:22:41      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

一,NSNotifcationCenter 

观察者模式。KVO。

NSNotification并不能实现IPC,因为NSNotificationCenter只允许同一个程序中的不同对象进行通信,他们不能跨越不同的应用。

Nofitication对象代表Poster与Observer之间的信息载体,该对象包含如下只读属性;

name:代表该通知的名称;

object:代表该通知的Poster

userInfo:

1,注册

1)[[NSNotificationCenter defaultCenter]  addObserver:self selector:@selector(mytest:) name:@" mytest" object:nil]; 

//第一个参数为监听者监听object,第二个参数:监听方法,第三个参数:通知名称;

如果object为空,则用于监听任何对象发出的通知;

[NSNotificationCenter defaultCenter] 获取系统默认的通知中心对象;

2)addObseverForName:object:queue:usingBlock: 指定代码块为监听者;

3)removeObserver:

4)removeObserver:name:object: 取消监听者队指定Poster、指定通知的监听;

2,发送消息

1), [[NSNotificationCenter defaultCenter] postNotificationName:@"mytest" object:searchFriendArray];

2),postNotification:需要一个NSNotification对象作为通知

postNotificationName:object://第一个参数:通知名称;第二个:通知的Poster

postNotificationName:object:userInfo: //第三个参数:是NSDicationary对象,用于携带通知的附加信息;

 

 

二,iOS本地通知

推送通知的基本目的都是让应用程序能够通知用户某些事情,而且不需要应用程序在前台运行;

区别在于:本地通知由本应用负责调用,只能从当前设备上ios发出;

远程推送通知由远程服务器上的程序发送至App Push Notification serve(APNs),再由APNs把消息推送至设备上对应的程序;

本地通知是一个UILocalNotification对象,它有如下属性:

fireDate:指定通知在什么时候触发;

repeatInterval:指定本地通知重复发送的时间间隔;

alertBody:设置本地通知的消息体;

alertAction:设置当设备处于锁屏状态时,显示通知的警告框下方的title

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];

 

推送机制

标签:

原文地址:http://www.cnblogs.com/developer-qin/p/4626480.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!