iOS远程推送和本地推送(二)

  • 什么是远程推送通知
  • 顾名思义:就是从远程服务器上推送过来的通知(需要联网)
  • 远程推送服务
  • 又称为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
iOS远程推送和本地推送(二)_第1张图片
Snip20160426_1.png
  • 把deviceToken发送给Provider(比如QQ服务器)
iOS远程推送和本地推送(二)_第2张图片
Snip20160426_2.png
  • Provider使用推送证书(开发阶段就是开发推送证书,发布阶段就是发布推送证书)与APNs服务器建立连接,然后把deviceToken和需要 推送内容发送给APNs,APNs根据deviceToken把内容推送给该deviceToken对应的设备上
iOS远程推送和本地推送(二)_第3张图片
Snip20160426_3.png

Xcode7 开始支持真机调试,但是只支持一般的调试不支持包含特殊服务的调试如远程推送和内购的调试.


配置远程推送通知证书

要启用远程推送通知,你必须创建一个明确的App ID,根据这个明确App ID创建远程推送通知的开发证书和发布证书

1.进入开发者中心
2.进入证书管理(Certificates, Identifiers & Profiles)
3.创建一个明确的App ID

iOS远程推送和本地推送(二)_第4张图片
Snip20160426_4.png
  • 指定AppID的描述名称,只是为了便于识别
iOS远程推送和本地推送(二)_第5张图片
Snip20160426_5.png
  • 往下拉页面,使用明确Bunld ID
iOS远程推送和本地推送(二)_第6张图片
Snip20160426_6.png
  • 在往下拉界面,选择push notifcation
iOS远程推送和本地推送(二)_第7张图片
Snip20160426_8.png
  • 点击 continue
  • 进入下个界面,push notifation是可以配置的,让点击submit
iOS远程推送和本地推送(二)_第8张图片
Snip20160426_9.png
  • 进入下一个界面点击 "Done" 到此为止,一个明确的App ID已经配置成功
  • 查看配置情况
iOS远程推送和本地推送(二)_第9张图片
Snip20160426_10.png
  • 点击后


    iOS远程推送和本地推送(二)_第10张图片
    Snip20160426_11.png

4.配置APNs开发证书

  • 第一种方式
    • 点击刚才界面的Edit按钮,进入下面的界面
iOS远程推送和本地推送(二)_第11张图片
Snip20160426_12.png
  • 创建请求证书签名
iOS远程推送和本地推送(二)_第12张图片
Snip20160426_13.png
  • 第二种方式
    • 点击Development


      iOS远程推送和本地推送(二)_第13张图片
      Snip20160426_15.png
    • 点击"+"进入下一个界面
iOS远程推送和本地推送(二)_第14张图片
Snip20160426_19.png
iOS远程推送和本地推送(二)_第15张图片
Snip20160426_20.png
iOS远程推送和本地推送(二)_第16张图片
Snip20160426_21.png
iOS远程推送和本地推送(二)_第17张图片
Snip20160426_22.png
iOS远程推送和本地推送(二)_第18张图片
![Snip20160426_24.png](http://upload-images.jianshu.io/upload_images/1932148-f943212f0d16361a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
iOS远程推送和本地推送(二)_第19张图片
Snip20160426_25.png
iOS远程推送和本地推送(二)_第20张图片
Snip20160426_26.png
iOS远程推送和本地推送(二)_第21张图片
Snip20160426_27.png

5.创建Profile文件

iOS远程推送和本地推送(二)_第22张图片
Snip20160426_28.png
iOS远程推送和本地推送(二)_第23张图片
Snip20160426_29.png
iOS远程推送和本地推送(二)_第24张图片
Snip20160426_30.png
iOS远程推送和本地推送(二)_第25张图片
Snip20160426_31.png
iOS远程推送和本地推送(二)_第26张图片
Snip20160426_32.png
iOS远程推送和本地推送(二)_第27张图片
Snip20160426_33.png
iOS远程推送和本地推送(二)_第28张图片
Snip20160426_35.png

6.重新创建Profile文件

iOS远程推送和本地推送(二)_第29张图片
Snip20160426_36.png
iOS远程推送和本地推送(二)_第30张图片
Snip20160426_37.png
iOS远程推送和本地推送(二)_第31张图片
Snip20160426_38.png
iOS远程推送和本地推送(二)_第32张图片
Snip20160426_39.png

7.安装相关证书:注意先安装顺序

iOS远程推送和本地推送(二)_第33张图片
Snip20160426_42.png

到此为止用于开发远程推送通知证书全部准备完毕


如果要发布具备远程推送功能的App还需要生成APNs的发布证书

7.生成AppStore和Ad-Hoc发布证书,说明Ad-Hoc用于发布前的测试.

  • 进入证书管理中心

  • 添加证书

iOS远程推送和本地推送(二)_第34张图片
Snip20160426_44.png
iOS远程推送和本地推送(二)_第35张图片
Snip20160426_45.png
iOS远程推送和本地推送(二)_第36张图片
Snip20160426_46.png
iOS远程推送和本地推送(二)_第37张图片
Snip20160426_47.png
iOS远程推送和本地推送(二)_第38张图片
Snip20160426_48.png
iOS远程推送和本地推送(二)_第39张图片
Snip20160426_49.png
iOS远程推送和本地推送(二)_第40张图片
Snip20160426_50.png
iOS远程推送和本地推送(二)_第41张图片
Snip20160426_51.png
iOS远程推送和本地推送(二)_第42张图片
Snip20160426_52.png
iOS远程推送和本地推送(二)_第43张图片
Snip20160426_53.png
iOS远程推送和本地推送(二)_第44张图片
Snip20160426_54.png
iOS远程推送和本地推送(二)_第45张图片
Snip20160426_55.png

3.安装发布证书与安装开发证书的步骤完全相同,不在赘述.


你可能感兴趣的:(iOS远程推送和本地推送(二))