iphone 推送服务--Apple Push Notification Service


 

iphone 推送服务--Apple Push Notification Service

分类: 推送服务 2011-04-14 14:24  8398人阅读  评论(4)  收藏  举报

标注: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 程序得到相应消息为成功标志。
相关文章
相关标签/搜索