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