`
houchangxi
  • 浏览: 63328 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

APNS 服务

阅读更多
APNs --Apple Push Notification Service
(图片来源--apple 开发文档


标注: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 程序获得相应消息为成功标志。

 

分享到:
评论

相关推荐

    APNS消息推送服务端

    APNS消息推送服务端, 运行系统mac os 连结服务器,为gateway.sandbox.push.apple.com

    Java向苹果服务器推送消息(Java实现HTTP/2协议发送APNS)

    Java APNS推送消息 HTTP/2协议, 基于JDK 11及以上

    Java_APNS:Java APNS 服务器

    Java Apns 服务器演示

    C# .net 实现APNS

    APNS 苹果推送服务 C#实现

    php-APNS苹果推送通知服务的服务器端公共类.zip

    APNS(英文全称:Apple Push Notification Service),中文翻译为:苹果推送通知服务,该技术由苹果公司提供的APNS服务,下面是一个比较完善的苹果推送通知服务的php服务器端公共类.

    安卓推送技术探讨

    Android/iOS推送比较 相比Android,iOS的推送服务要稳定,因为Android操作系统用户可以自己杀死服务, 这样就造成了手机接收不到通知消息。苹果APNs...5、APNS服务将消息发送给iPhone应用程序

    java实现给Iphone推送消息

    该技术由苹果公司提供的APNS服务。工作原理:首先,APNS会对用户进行物理连接认证,和设备令牌认证(简言之就是苹果的服务器检查设备里的证书已确定其为苹果设备);然后随后将服务器的信息接收并且保存在APNS当中,...

    PushMeBaby测试开发推送工具

    1.制作development推送cer证书改名成apns.cer。替换PushMeBaby里的apns.cer。 2.获取deviceToken。替换 PushMeBaby里的self.deviceToken值。 3.按格式修改self.payload里的值。 备注: 苹果的APNS服务器地址有2个...

    最新java整合APNS推送服务

    java依赖+整合代码工具类示例

    java apns eclipse

    eclipse的项目,java写的apns服务器项目

    .net APNS推送

    该项目是.net下的一个APNS推送,服务器到APNS端的一个示例。

    tornado_apns, 在PyAPNS上,基于 Tornado的异步 APNS.zip

    tornado_apns, 在PyAPNS上,基于 Tornado的异步 APNS tornado_apns用于与苹果推送通知服务( APNs ) 进行 Tornado 异步编程的python 库示例用法import timefrom apns import APNs, Payloadfrom

    buford:新的 HTTP2 APNS 服务的推送通知交付引擎

    服务Apple 的推送通知服务,Buford 与之通信。 客户端http.Client提供 HTTP/2 客户端与 APN 服务通信。 通知有效负载、设备令牌和标头。 设备令牌给定设备上的应用程序的标识符。 负载发送到设备的 JSON。 ...

    p5-Net-APNS-Simple:APNS Perl实施

    (它不对应于并行流,因为APNS服务器返回SETTINGS_MAX_CONCURRENT_STREAMS =1。) 概要 use Net::APNS::Simple; # With provider authentication tokens my $apns = Net::APNS::Simple-&gt;new( # enable if ...

    ios APNS推送服务器代码pushMe

    ios APNS推送服务器php核心代码pushMe

    easyapns, 使用 PHP & MySQL的简单 APNs.zip

    easyapns, 使用 PHP & MySQL的简单 APNs 不再维护这里项目:请注意:EasyAPNs适用于精通 PHP,MySQL和 Objective C的程序员。 如果你不精通这些编程语言,请使用其他服务,如城市飞艇( http://urbanairship.com ) 。...

    C# 苹果推送后台APNS

    苹果推送服务APNS通过C#实现的后台,服务器端源码。应用于IOS提供的移动端推送服务。便于开发者与用户端即时沟通讯息

    BasicUserNotification.m

    登陆服务时,将用户身份和deviceToken发给服务器,服务器记录 李四给张三发消息 发送消息及张三的用户身份 服务器按照张三的身份找到存储的deviceToken,将消息和deviToken发送给APNs APNs通过deviceToken推送消息给...

    iOS创建EMM_APNS证书流程.docx

    iOS创建apns证书步骤

    apns4erl:适用于Erlang的Apple Push Notification Server

    Apns4erl v2 此库旨在允许您在Erlang中通过HTTP2编写的APNs提供程序。 版权所有(c)2017 Erlang Solutions Ltd. ,根据Apache 2许可发布 您可以在找到v1吗? 注意: Apns4erl v2仍在开发中。 当前,它支持带有...

Global site tag (gtag.js) - Google Analytics