iOS远程推送和本地推送(二)
2016-04-26 本文已影响256人
6ffd6634d577
- 什么是远程推送通知
- 顾名思义:就是从远程服务器上推送过来的通知(需要联网)
- 远程推送服务
- 又称为APNs (Apple Push Notification Service)
- 远程通知都是通过苹果的远程推送服务器发送过来的
- 为什么需要远程通知
- 当用户关闭服务,就无法从服务器上获取最新的数据,但是有些重要事情,我们需要告知用户,比如说:团购优惠活动,电商的打折活动
- 远程推送就可以解决上面的问题
- 不管用户是打开还是关闭app,只要联网了就能够收到服务器推送过来的远程通知
远程推送通知的原理
长连接
- 所有苹果设备在联网的状态下,都会建立与苹果服务器的长连接
- 什么是长连接?
只要联网了一直建立的连接 - 长连接的作用
时间校准
系统升级
查找我iPhone
远程推送通知
....
- 长连接的好处
无需用户请求,服务端就可以把内容推送到客户端(Mac,IPhone,iPad)
数据传输速度快
数据保持最新的状态
实现远程推送通知的过程
- 真机
- 证书
- 开发阶段
- aps_development.cer 让某个电脑具备调试远程推送通知的能力
- ios_development.cer 让某个电脑具有真机调试的能力
- dev_qq.mobileprovision 让某个电脑上可以在某个真机上调试某个App的远程推送服务
- 发布阶段
- aps_production.cer 让电脑具备发布某个具有远程推送服务的App的能力
- ios_distribution.cer 让电脑具备发布程序的能力
- dis_qq.mobileprovision 让某台电脑具备发布某App的能力
- 从APNs服务器上获取deviceToken
- 把deviceToken发送给Provider(比如QQ服务器)
- Provider使用推送证书(开发阶段就是开发推送证书,发布阶段就是发布推送证书)与APNs服务器建立连接,然后把deviceToken和需要 推送内容发送给APNs,APNs根据deviceToken把内容推送给该deviceToken对应的设备上
Xcode7 开始支持真机调试,但是只支持一般的调试不支持包含特殊服务的调试如远程推送和内购的调试.
配置远程推送通知证书
要启用远程推送通知,你必须创建一个明确的App ID,根据这个明确App ID创建远程推送通知的开发证书和发布证书
1.进入开发者中心
2.进入证书管理(Certificates, Identifiers & Profiles)
3.创建一个明确的App ID
- 指定AppID的描述名称,只是为了便于识别
- 往下拉页面,使用明确Bunld ID
- 在往下拉界面,选择push notifcation
- 点击 continue
- 进入下个界面,push notifation是可以配置的,让点击submit
- 进入下一个界面点击 "Done" 到此为止,一个明确的App ID已经配置成功
- 查看配置情况
-
点击后
Snip20160426_11.png
4.配置APNs开发证书
- 第一种方式
- 点击刚才界面的Edit按钮,进入下面的界面
- 创建请求证书签名
- 第二种方式
-
点击Development
Snip20160426_15.png - 点击"+"进入下一个界面
-
5.创建Profile文件
Snip20160426_28.png Snip20160426_29.png Snip20160426_30.png Snip20160426_31.png Snip20160426_32.png Snip20160426_33.png Snip20160426_35.png6.重新创建Profile文件
Snip20160426_36.png Snip20160426_37.png Snip20160426_38.png Snip20160426_39.png7.安装相关证书:注意先安装顺序
Snip20160426_42.png到此为止用于开发远程推送通知证书全部准备完毕
如果要发布具备远程推送功能的App还需要生成APNs的发布证书
7.生成AppStore和Ad-Hoc发布证书,说明Ad-Hoc用于发布前的测试.
-
进入证书管理中心
-
添加证书
3.安装发布证书与安装开发证书的步骤完全相同,不在赘述.