1. UIApplacation向 APNS 注册 push notification 服务

(1) 应用程序要支持推送服务, 在网页里面配置  http://developer.apple.com/devceter/ios/index.action

(2) 登陆苹果开发者账号 (注意是收费账号 $99 或者 $ 299)

(3) 下载push证书 (主要是给程序签名 push服务只有收费开发者才具备, 所以需要签名验证), 如果没有push证书 (APP ID -> 钥匙串程序生成reqest -> push证书)

    注意事项: APP ID 的Bundle ID 必须和plist文件中的Bundle identifier一致, APP ID 一旦生成将不可修改

(4) 把证书安装到钥匙串里  (双击证书文件)

(5) 生成 编译程序 用的描述文件 (网页里面进行)

向APNS 注册push服务 (UIApplication 的 registerForRemoteNotificationTypes:  方法)

2. 获取APNS 分配的DeviceToken (64位16进制串)

-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

3. 把DeviceToken 发送给自己的后台服务器, 服务器记录每台设备的DeviceToken 以便日后推送消息给客户端, (需要一个网络接口, 让客户端发送DeviceToken)

4. 服务器推送消息给客户端

(1) 服务器除了需要有客户端的DeviceToken之外, 还要有push证书, 对push 的内容进行签名(苹果为了防止恶意向客户端(比如DeviceToken泄露了)发送消息, 每次推送消息, 都需要证书进行签名, 从而避免黑客恶意攻击用户手机)

(2) 如果你的服务器是Java 写的, 可以直接使用钥匙串导出的 P12 文件 (证书和密匙一起导出 )  如果你的服务器是PHP写的, 因为PHP语言不支持P12文件类型, 需要转换为pem文件.

(3) 将P12转换为pem文件: 终端 先找到你P12所在的目录 openssl pkcs12 -in CertificateName.p12 - outCertificateName.pem - nodes

(4) 服务器发送信息给APNS , APNS自动将信息推送到客户端.

5. 客户端处理收到的信息

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

注意事项:

1.

 

最新文章

  1. 转载 NPOI Excel 单元格背景颜色对照表
  2. qt 定时器
  3. Graphics平移缩放旋转(转载)+点睛
  4. 三天学会HTML5——SVG和Canvas的使用
  5. yum install maven
  6. jQuery EasyUI Combobox无法检索中文输入的问题
  7. 如何从Eclipse导入github上的项目源码
  8. 获取当前url并指定url中的字符 效果
  9. MVC3 Razor @RenderSection
  10. cform 开发框架介绍
  11. Example001使用window对象打开窗口
  12. sql性能优化之多表联查
  13. Exp6 信息搜集与漏洞扫描 20165110
  14. MySQL— pymysql模块(防止sql注入),可视化软件Navicat
  15. SQL Server进阶(七)集合运算
  16. Individual Project复审
  17. 为什么NULL指针也能访问成员函数?(但不能访问成员变量)
  18. Windows-universal-samples学习笔记系列五:Custom user interactions
  19. CentOS7使用firewalld打开关闭防火墙与端口[转]
  20. ElasticStack系列之六 & 版本冲突处理之乐观锁

热门文章

  1. eclipse调试第三方jar包需要源码的问题
  2. js复杂数据格式提交
  3. OpenMeetings安装
  4. 2018年东北农业大学春季校赛 D wyh的迷宫 【BFS】
  5. Docker的远程访问
  6. 拓展gcd求不定方程通解
  7. 2U网络机箱的尺寸是多少,4U网络机箱的尺寸是多少
  8. (转)Java经典设计模式(3):十一种行为型模式(附实例和详解)
  9. 理解HTML解析过程
  10. tensorflow实现图像的翻转