iphone 推送服务

 

文章分类:移动开发
原文地址:http://hi.baidu.com/hh20040410/blog/item/460708cc7bdae41a01e9288c.html 
标注:APNs 苹果推送服务器 
Device 安装带有推送服务程序的iPhone手机 
Provider 程序服务器,把需要推送的信息发给 APNs 
DeviceToken  在Device第一次连接APNs时,由APNs生成的经过加密的连接认证信息。在以后的连接中,无论时Provider到APNs还是APNs到Device 都需要 DeviceToken作为认证。 
Payload  需要推送的消息的主体内容。alert-alert消息的消息体,按键标题等badge-显示在程序icon右上角的数字,sound-声音提示文件的文件名,该声音资源文件要在程序包中。 

整体流程大体分为五个步骤: 
1: Device --> 连接-->  APNs  获取 DeviceToken 
          2: Device -->连接-->  Provider 提供DeviceToken 
                                              
3: Provider侦测需要 push的消息生成 Notification信息 

4:  Provider侦把要 push的消息推送到APNs 
5:   APNs把该消息推送到手机 
                


使用方法: 
为了获取deviceToken 
第一步:获取认证书Certificates.p12   [注释:.p12 文件,文件名可以随便取] 
该Certificates.p12 认证书 是用于服务器与APNs服务器SSL 连接时的认证,而获取p12的前提是获取APNs Assistant 

1:每个程序都要在 apple开发中心生成  App ID. 

2:单击app id 的后面的 Configure 

3:在新的页面中,勾选Enable  Push  Notification Services , 而后点击Configure ,随后出现APNs Assistant,APNs助手会引导生成你的程序与APNs服务器进行SSL连接的认证书App ID specific Client SSL certificate[注释:一般文件名为“aps_developer_identity.cer” 可修改] 

4:APNs助手会引导你保存SSL certificate到你的硬盘,保存好后双击,安装到你的keychain 

5:  执行完以上四步,可以点击Done,关闭APNs助手。 

6:启动Keychain Access程序,查看刚才安装的认证,name 为 apple Development/Production   push Services。。。 
导出--即获得Certificates.p12 保存好给Provider 服务器使用 


第二步:iPhone 端 
iPhone provisioning  以开启了 PUSH功能App ID 生成相应的provisioning。 

iPhone需要用到的方法函数如下: 

//注册启用  push 
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge /*|UIRemoteNotificationTypeSound*/)]; 

//用该判断 程序是不是通过 push消息启动的 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

//iPhone 从APNs服务器获取deviceToken后激活该方法 
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 

//注册 push功能失败 后 返回错误信息,执行相应的处理 
- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err 



注意: 
deviceToken的处理 
[[devToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]] 

调测试方法: 
Device 
调试运行iPhone端程序,以获取deviceToken 为成功标志。 

Provider 
网上有个共开发测试的Provider程序: 
PushMeBaby: 
使用的方法是, 
1;拷贝注册获取的SSL certificate文件【.cer文件】重命名为 apns.cer 添加到PushMeBaby资源文件夹中 
2: 运行,输入 iPhone端获取的deviceToken 
3: 推送 
以Device 程序获得相应消息为成功标志。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值