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

iOS远程消息推送原理的更多相关文章

  1. iOS开发消息推送原理

    转载自:http://www.cnblogs.com/cdts_change/p/3240893.html 一.消息推送原理: 在实现消息推送之前先提及几个于推送相关概念,如下图1-1: 1.Prov ...

  2. iOS 远程消息推送,原理和开发详解篇(新手推荐)

    1.APNS的推送机制 首先我们看一下苹果官方给出的对ios推送机制的解释.如下图 Provider就是我们自己程序的后台服务器,APNS是Apple Push Notification Servic ...

  3. 分分钟搞定IOS远程消息推送

    一.引言 IOS中消息的推送有两种方式,分别是本地推送和远程推送,本地推送在http://my.oschina.net/u/2340880/blog/405491这篇博客中有详细的介绍,这里主要讨论远 ...

  4. iOS远程消息推送自我整理版

    @interface AppDelegate () <UIApplicationDelegate> @end @implementation AppDelegate - (BOOL)app ...

  5. iOS远程消息推送

    iOS 推送基础知识 Apple 使用公共密钥数字证书对来自 iOS 应用程序的推送请求进行身份验证,所以您首先需要创建身份验证密钥,并向 Apple 注册它们.我将在下一节中花相当长的篇幅来直接介绍 ...

  6. IOS - 消息推送原理和实现

    一.消息推送原理: 在实现消息推送之前先提及几个于推送相关概念,如下图1-1: 1.Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Pr ...

  7. iOS 消息推送原理及实现Demo

    一.消息推送原理: 在实现消息推送之前先提及几个于推送相关概念,如下图1-1: 1.Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Pr ...

  8. iOS 消息推送原理

    一.消息推送原理: 在实现消息推送之前先提及几个于推送相关概念,如下图: 1. Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Prov ...

  9. iOS消息推送原理和实现总结

    一.消息推送原理: 在实现消息推送之前先提及几个于推送相关概念,如下图:1. Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provi ...

随机推荐

  1. PS:将一个图片变成圆形

    1.选择一张正方形图片并放置到PS软件中 2.选择“选框工具”->右击选择"椭圆选框工具” 3.画出你要圆形内的范围: 4.选择两种方式中的一种,实际上效果是一毛一样的 5.右下角就会 ...

  2. navicat for mysql注册码:NAVN-LNXG-XHHX-5NOO

    名.组织可以为空或任意填写. 摘自: navicat for mysql10.0.0.0注册码中“名”.“组织”...._百度知道

  3. python 网址

    https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431752945034e ...

  4. 解决robotframework安装时提示wxPython not found问题

    背景:想把现在pc的项目做成关键字的形式,可以让功能测试人员也参与到自动化测试中,于是就找到robotframework这个框架,试用下怎么样,在安装时就遇到很多问题,安装的帖子有很多,很详细,如:h ...

  5. clear:both;和overflow:hidden;的应用理解。

    摘自cbwcwy 前辈: clear是子模块之间限定的,如下:<div id="a">    <div id="1"></div& ...

  6. office2010激活

    软件下载链接: http://yunpan.cn/cySGrE99u6uv3 (提取码:c612) 下面是操作演示,我录制成gif文件了,下载下来用浏览器打开 360网盘:http://yunpan. ...

  7. java读取pfx或P12格式的个人交换库公私钥

    使用的是CFCA签发的用于银行间交换数据的证书,下载后直接添加到浏览器中 1.导出 从浏览器导出p12文件(包含私钥) 2.验证 两种方式: openssl 代码(请注意alias别名是如何获取的): ...

  8. 微信小程序之setData原理以及几点关于小程序的吐槽

    小程序不方便之处: 1: 想做个获取列表中每个item所在的对应滚动条的高度在哪里,或者元素本身的高度也不好获取,极其不方便,网上看的别人做的滚动条相关的,都是写死或者已知的item高度,目前没找到正 ...

  9. layer 的功能

    1.layer.alert() layer.alert('',{ title: "<div style='color:red;margin-left:20px;font-size:20 ...

  10. 网页弹出[Object HTMLDivElement],怎么取值?

    使用innerHTML方法,可以得到文本值