`
lovebirdegg
  • 浏览: 171412 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

iphone 推送服务--Apple Push Notification Service

阅读更多
原文地址: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 程序获得相应消息为成功标志。
分享到:
评论

相关推荐

    java实现给Iphone推送消息

    APNS(Apple Push Notification Service)苹果推送通知服务。该技术由苹果公司提供的APNS服务。工作原理:首先,APNS会对用户进行物理连接认证,和设备令牌认证(简言之就是苹果的服务器检查设备里的证书已确定其为...

    iPhone的Push(推送通知)功能原理浅析

    APNS 是Apple Push Notification Service(Apple Push服务器)的缩写,下文统一使用该缩写。 因 此,整个过程可以分为三个阶段,下面用大家常用的聊天客户端BeejiveIM来说明。(BeejiveIM是一款支持多账户登录的...

    macos-push-tester:本地Mac应用程序,可轻松将Apple APNs推送消息发送到iOS应用程序

    macOS Pusher App允许您通过APNS(Apple Push Notification Service)发送推送通知,并在设备上接收它们。 它还可以从同一wifi网络上的任何iPhone获取设备令牌。 注意:此应用是由SSED SDK团队内部使用而创建的。 ...

    iOS实现消息推送及原理分析

    2、APNS:Apple Push Notification Service[苹果消息推送服务器]; 3、iPhone:用来接收APNS下发下来的消息; 4、Client App:IOS设备上的应用程序,用来接收iphone传递APNS下发的消息到制定的一个客户端 app[消息...

    移动消息推送库 PushSharp.zip

    PushSharp 实现了服务器端向移动客户端推送消息的库,支持 iOS (iPhone/iPad APNS), Android (C2DM and GCM - Google Cloud Message), Windows Phone, 和 Windows 8 devices! 示例代码://Create our push ...

    iOS消息推送原理及具体实现代码

    2、APNS:Apple Push Notification Service[苹果消息推送服务器]; 3、iPhone:用来接收APNS下发下来的消息; 4、Client App:IOS设备上的应用程序,用来接收iphone传递APNS下发的消息到制定的一个客户端app[消息的...

    iOS开发之(APNS)远程推送实现代码 附证书与真机调试

    顾名思义,就是从远程服务器推送给客户端的通知(需要联网)远程推送服务,又称为APNs(ApplePush Notification Services) 为什么需要远程推送通知传统获取数据的局限性只要用户关闭了app,就无法跟app的服务器沟通...

    iOS10推送教程详解

    上个月接到一个需求,做ios10的推送,意图冲击AppStore头条....APNS 是Apple Push Notification Service(Apple Push服务器)的缩写,是苹果的服务器。 上图可以分为三个阶段。 第一阶段:.net应用程序把

    IOS消息推送总结

    此文档描述了IOS推送的实现原理、详细的证书制作及核心代码实现(带图)!

    BasicUserNotification.m

    在联网的情况下,由远程服务器推送给客户端的通知,又称APNs(Apple Push Notification Services) 不管应用是打开还是关闭的情况下,都能接收到服务器推送的远程通知 5.远程通知的实现基础 在联网状态下,所有苹果...

    ApnsPHP:ApnsPHP:苹果推送通知和反馈提供程序

    ApnsPHP:Apple推送通知和反馈提供程序 全套开放源代码PHP类,可与iPhone,iPad和iPod Touch的Apple Push Notification服务交互。消息2016年6月1日,首先实现的HTTP / 2协议的,请下载(请检查您是否卷曲与HTTP2支持...

Global site tag (gtag.js) - Google Analytics