iOS远程消息推送原理

1. 什么是远程消息推送?

APNs:Apple Push Notification server 苹果推送通知服务
苹果的APNs允许设备和苹果的推送通知服务器保持连接,支持开发者推送消息给用户设备对应的应用程序。

2. 常见用途

常常用于消息的订阅
1、 电商:我有新品发布啦!
我的某某产品在搞活动,五折优惠!
2、 新闻媒体:今天又有新鲜事发生了!
3、 社交:某某给你留言了!
某某对你的文章发表评论了!

3. 实现消息推送的步骤

1、 注册:为应用程序申请消息推送服务。此时你的设备会向APNs服务器发送注册请求。
2、 APNs服务器接受请求,并将deviceToken返给你设备上的应用程序
3、客户端应用程序将deviceToken发送给后台服务器程序,后台接收并储存。
4、 后台服务器向APNs服务器发送推送消息
5、 APNs服务器将消息发给deviceToken对应设备上的应用程序

4. 消息推送原理


屏幕快照 2017-04-26 下午4.59.06.png

5. UIApplication 与 UIApplicationDelegate

UIApplication的核心作用是提供iOS程序运行期间的控制和协作工作。
UIApplication的实例会被赋予一个代理对象(UIApplicationDelegate),以处理应用程序的生命周期事件,系统事件。

6. 远程消息注册


屏幕快照 2017-04-26 下午5.11.13.png

1. 注册成功


屏幕快照 2017-04-26 下午5.13.11.png

1、注册成功之后会弹出提示框征求用户的同意
2、当用户选择允许之后会在这个方法里取得设备的deviceToken,然后发送给服务器
3、 测试环境与发布环境所连接的服务器地址是不同的,所获取到的deviceToken值也是不同的。deviceToken与应用无关。

2. 注册失败


屏幕快照 2017-04-26 下午5.17.39.png

3. 收到远程消息


屏幕快照 2017-04-26 下午5.19.23.png

想要收到推送消息,就必须要有后台服务器向APNs的服务器发请求。
1、公司自己开发后台服务器程序
2、 采用第三方的后台服务程序,比如:百度云推送、极光推送、友盟推送


屏幕快照 2017-04-26 下午5.27.36.png




转自:http://www.jianshu.com/p/2595dfc5e7cd

原文地址:https://www.cnblogs.com/huangzs/p/7471195.html