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

分享到: 

转载于:https://www.cnblogs.com/zsw-1993/archive/2012/11/12/4880659.html

iphone 推送服务--Apple Push Notification Service相关推荐

  1. Apple Push Notification Service(苹果推送服务)

    https://developer.apple.com/library/IOS/documentation/NetworkingInternet/Conceptual/RemoteNotificati ...

  2. iOS上简单推送通知(Push Notification)的实现

    iOS上简单推送通知(Push Notification)的实现 根据这篇很好的教程(http://www.raywenderlich.com/3443/apple-push-notification ...

  3. [转]宝文!Apple Push Notification Service (APNS)原理与实现方案

    原理 简单的说,app要单独实现消息动态更新,一种是轮询,这对用户来说会带来额外的流量.另一种方案是push,app client和server直接保持一个长连接,有新的消息时server push给 ...

  4. ×××送通知服务教程 Apple Push Notification Services Tutorial

    本文译自http://www.raywenderlich.com/.原文由iOS教程团队 Matthijs Hollemans 撰写,经原网站管理员授权本博翻译. 在iOS系统,考虑到手机电池电量,应 ...

  5. apns java 证书_APNS推送服务证书制作 图文详解教程(新)

    iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务 ...

  6. 手把手教你配置苹果APNS推送服务|钿畑的博客 | 钿畑的博客

    http://www.360doc.com/content/15/0118/17/1073512_441822850.shtml# 钿畑的文章索引 1. 什么是推送通知 2. 什么是APNS? 3. ...

  7. 手把手教你配置苹果APNS推送服务

    1. 什么是推送通知 消息通知分本地通知和远程推送通知,是没有运行在前台的应用程序可以让它们的用户获得相关消息通知的方式.消息通知可能是一条消息,即将发生的日历事件,或远程服务器的新数据.当被操作系统 ...

  8. 苹果消息推送服务教程:第一二部分(共2部分)

    苹果消息推送服务教程:第一部分(共2部分) 转自 http://www.raywenderlich.com/zh-hans/24732/苹果消息推送服务教程:第一部分(共2部分) 这是iOS教程团队的 ...

  9. 苹果消息推送服务教程:第一部分(共2部分)

    这篇文章还可以在这里找到 英语 Learn how to add Push Notifications into your iPhone app! 这是iOS教程团队的Matthijs Hollema ...

  10. 苹果消息推送服务教程(三步曲)-超详细

    mtrabelsi  (原作者) 第一部分 在iOS系统中,在后台运行的程序能够进行的操作是非常有限的.这种限制是为了节省手机电池. 但是,如果你需要在用户没有使用你的程序的情况下给他们推送消息该怎么 ...

最新文章

  1. 线性回归之模型的保存和加载
  2. mysql表名忽略大小写
  3. Mysql5.7安装错误处理与主从同步及!
  4. 工作中常用,实用工具推荐!
  5. SQL Server-事务处理(Tansaction)与锁(Lock)
  6. 吴恩达 coursera AI 专项五第三课(下)总结+作业答案
  7. mysql 用户命令_MySQL命令行新建用户
  8. HTTP Request Content-Type:application/x-www-form-urlencoded、multipart/form-data、application/json
  9. ionic 修改开发工具的配置
  10. react学习(70)--拼接方式
  11. python绘画音频_人工智能下的音频还能这样玩!!!!
  12. 【转】Qtcreator中常用快捷键和小技巧
  13. python最好用的助手_推荐5款好用的Python工具
  14. 轻量级ORM框架 【Dapper】 的使用
  15. 【Flink】kafka INVALID_PRODUCER_EPO send data to Kafka old epoch newer producer same transactionalId
  16. 第四季-专题9-Linux驱动开发前奏
  17. idea 快速导入实现父类方法_三步快速提高物理成绩!准初三生暑假实现逆袭的实用方法...
  18. SQL_Server_2008完全学习之第六章数据查询和管理
  19. c标准语言库里的i o函数,C语言文件I/O和标准I/O函数
  20. ffmpeg结构体以及函数介绍(一)

热门文章

  1. 如何在Mac上使用预览在PDF上打字?
  2. 在macOS Big Sur上如何重置蓝牙?
  3. Mac上设置共享视频音乐或照片
  4. Photo Size Changer三步压缩太大的jpg照片
  5. ceph分布式存储简介
  6. recyclerview简单实现单选多选反选全选
  7. python:关于读取文件的指定行的问题
  8. Mac OS X中AMPPS中MySQL的配置文件(my.cnf)的位置
  9. Linux yum安装unrar、rar
  10. android selector 开始自定义样式