您的位置:首页 > 移动开发

iphone 推送服务--Apple Push Notification Service

2011-04-14 14:24 573 查看
标注: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
程序获得相应消息为成功标志。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: