您的位置:首页 > 其它

本地推送和远程推送的简单介绍

2014-05-24 20:15 369 查看
消息的推送主要有两种:

一种是本地推送,主要应用在系统的工具中,例如:闹钟,生日提醒等;

实现本地推送需要以下三个步骤:

第一步:实例化一个本地推送对象

UILocalNotification *localNotification = [[UILocalNotification alloc]init];
第二步:设置通知对象的各个属性

//    设置角标
localNotification.applicationIconBadgeNumber = 5 ;
//    设置合适的时间推送消息
localNotification.fireDate = [[NSDate date]dateByAddingTimeInterval:3];
//    设置时区,一般设为默认时区
localNotification.timeZone = [NSTimeZone defaultTimeZone];
//    设置重复机制
localNotification.repeatInterval = kCFCalendarUnitMinute ;
//    推送的消息文本
localNotification.alertBody = @"Hello Word";
第三步:添加本地推送对象

[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];


以上几步就可以实现简单的本地消息推送,对于推送对象的其他属性可以自己设置查看效果。

另一种是远程消息推送,主要应用联网设备的信息推送,例如:邮件,各种软件的广告或优惠信息的推送。

(但是对于即时性的通讯软件一般不使用,这种远程推送机制,例如:QQ,微信。这是因为对于远程推送并不能保证消息能够及时的到达接受设备)

远程推送比较复杂,需要使用开发者账号进行申请证书,获得实现推送功能的配置文件,所以想要实现远程推送功能,必须要有开发者账号并且生成配置文件,当然这不是我要说的重点,重点是如何进行远程推送。

远程推送的流程如下图:



第一步:完成证书的申请和Xcode的配置

第二步:在Demo中注册远程服务对象,并设置其代理

//    注册远程推送,设置提示方式Alert:文本,Badge:角标,Sound:声音
[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound ];
代理方法:

//注册失败时的代理实现
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
NSLog(@"Error:%@",error);
}
//获得40位的令牌,在推送时需要使用
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
NSLog(@"DeviceToken :%@",deviceToken);
}


对于其它的代理方法可以自己实现。

第三步:找一个简单的App服务器进行消息推送(推荐使用:PushMeBaby,gitup网站上就有)

运行PushMeBaby

- (id)init {
self = [super init];
if(self != nil) {
//        添加从上述代理中得到的40位令牌
self.deviceToken = @"9b0240ff a373491e 68fca44c 4d326589 de3ddde2 43599853 9cc72b68 af8f5cce";
//        添加推送的信息,注意格式
self.payload = @"{\"aps\":{\"alert\":\"河南青云信息技术有限公司.\",  \"sound\" : \"bingbong.aiff\",\"badge\":10000}}";
//        添加得到的推送证书
self.certificate = [[NSBundle mainBundle] pathForResource:@"aps_development" ofType:@"cer"];
}
return self;
}
上述步骤就可以实现远程消息推送。

对于消息推送的两种方式,以上只是简单的介绍,如果有不对的地方,还请各位谅解并指出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: