IOS远程推送

一.关于推送通知

推送通知,也被叫做远程通知,是在iOS 3.0以后被引入的功能。是当程序没有启动或不在前台运行时,告诉用户有新消息的一种途径,是从外部服务器发送到应用程序上的。一般说来,当要显示消息或下载数据的时候,通知是由远程服务器(程序的提供者)发送,然后通过苹果的推送通知服务(Apple Push Notification Service,简称apns)推送到设备的程序上。

推送的新消息可能是一条信息、一项即将到期的日程或是一份远程服务器上的新数据。在系统上展现的时候,可以显示警告信息或在程序icon上显示数字,同时,也可以播放警告音。一旦用户注意到程序有新的信息、时间或是数据,他们可以运行程序并访问新的内容。也可以选择忽略通知,这时程序将不会被激活。

iPhone, iPad和iPod touch上同一时刻只有一个app在前台运行。大多数程序在后台运行的时候,可以对某些用户感兴趣的内容做出回应(定时、或数据等)。推送通知能让程序在这些事件发生的时候通知用户。

作为提供者为程序开发和部署推送通知,必须通过iOS Developer Program Portal获得SSL证书。每个证书限用于一个程序,使用程序的bundle ID作为标识。证书有两种用途的:一种是针对sandbox(用于开发和测试),另外一种针对发布产品。这两种运行环境拥有为各自指定的IP地址并且需要不同的证书。还必须为两种不同的环境获取各自的provisioning profiles。

APNS提供了两项基本的服务:消息推送和反馈服务。

消息推送:使用流式TCP套接字将推送通知作为二进制数据发送给APNs。消息推送有分别针对开发和测试用的sandbox、发布产品的两个接口,每个都有各自的地址和端口。不管用哪个接口,都需要通过TLS或SSL,使用SSL证书来建立一个安全的信道。提供者编制通知信息,然后通过这个信道将其发送给APNs。 注:sandbox:   gateway.sandbox.push.apple.com:219 产品接口:gateway.push.apple.com:2195

反馈服务:可以得到针对某个程序的发送失败记录。提供者应该使用反馈服务周期性检查哪些设备一直收不到通知,不需要重复发送通知到这些设备,降低推送服务器的负担。 注:sandbox:feedback.push.apple.com:2196 产品接口:feedback.sandbox.push.apple.com:2196

二.Apple Push Notification的工作机制

自己的客户端发送消息到自己应用软件的apns,apns发送消息到你的手机。这个是根据令牌识别的。手机在发送消息到你的应用软件。

  • 首先是应用程序注册消息推送。
  • IOS跟APNS Server要deviceToken。应用程序接受deviceToken。
  • 应用程序将deviceToken发送给PUSH服务端程序(Provider)。
  • 服务端程序向APNS服务发送消息。
  • APNS服务将消息发送给iPhone应用程序。

1. Provider是指某个iPhone软件的Push服务器,是我们将要开发的服务器。

2. APNS 是Apple Push Notification Service(Apple Push服务器)的缩写,是苹果的服务器。

以上可以分为三个阶段:

第一阶段:推送服务器(provider)把要发送的消息、目的iPhone的标识打包,发给APNS;

第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发到iPhone;

第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知。

三 推送之前的配置

在任何iOS应用开发里面,开发人员总是在团队里面扮演某一角色:团队经理,团队管理员,和团队成员。iPhone开发证书和配置文件由不同角色完成。通常团队经理是团队里面唯一可以创建Development SSL证书(沙箱环境)和Distribution SSL证书(产品环境)的人。而团队经理和团队管理员都可以创建Development和Distribution的配置文件。团队成员只能下载并安装证书和配置文件(!这里要区别好证书和配置文件的概念:证书,即Certificates,它主要是使用Access Key Chain来生成的一个签名密钥。而配置文件,即Provisioning profiles,它主要是根据不同的App来生成的针对性的代码签名文件。二者区别是一般一个开发者账户只能有一个Certificates(而Development一个,Distribtuion一个),但是可以有多个Provisioning profiles文件,且这些Provisioning profiles通常创建的时候都使用同一个Certrificates)。以下部分详细介绍该过程。

注意:iOS Provisioning Portal给所有iOS开发者。

IOS远程推送,布布扣,bubuko.com

时间: 2024-10-24 21:28:15

IOS远程推送的相关文章

iOS 远程推送 根据后台推送内容的不同跳转指定页面

转发自:http://www.jianshu.com/p/4531bd6e3a01 iOS 远程推送,根据后台推送内容的不同, 跳转指定页面 我目前的需求是总体分为两类: 1:私信.关注.点赞一类,只需跳转到对应的tabbar 中的某一项 2:每日精品文章项目推送,分两个子类 (1)如果当前已经打开 文章项目页面,则直接刷新,不推出新页面 (2)如果当前未打开此页面,则push出新的文章项目页面 iOS 推送情况分为 应用未启动的 情况: 打开应用 ,推送信息 会通过 - (BOOL)appli

iOS远程推送原理及实现过程

推送通知,是现在的应用必不可少的功能.那么在 iOS 中,我们是如何实现远程推送的呢?iOS 的远程推送原理又是什么呢?在做 iOS 远程推送时,我们会遇到各种各样的问题.那么首先让我们准备一些做推送需要的东西.我们需要一个付费的苹果开发者账号(免费的不可以做远程推送),有了开发者账号,我们可以去苹果开发者网站,配置自己所需要的推送的相关证书.然后下载证书,供我们后面使用,详细的证书配置过程,我们下面再说. 首先我们要说说iOS推送通知的基本原理: 苹果的推送服务通知是由自己专门的推送服务器AP

iOS 远程推送的实现

iOS的推送可以用下图简单的概括: 这里 Provider 是指某个应用的Developer,当然如果开发者使用AVOS Cloud的服务,把发送消息的请求委托给我们,那么这里的Provider就是AVOS Cloud的推送服务程序了.上图可以分为三步: 第一步:AVOS Cloud推送服务程序把要发送的消息.目的设备的唯一标识打包,发给APNs. 第二步:APNs在自身的已注册Push服务的应用列表中,查找有相应标识的设备,并把消息发送到设备. 第三步:iOS系统把发来的消息传递给相应的应用程

iOS 远程推送的详细配置

首先,来说一下苹果的推送机制.顾名思义,推送,是指服务器向客户端发送消息,那么在iOS中,应用是被后台挂起的,并不能一直连接网络,那么服务器怎么才能把消息发送到客户端呢?这就用到推送,苹果的推送机制,是只能由APNS发送推送通知,所以你自己的后台服务器想给客户端推送通知,得把要推送的内容发送给APNS. 说到这里,如果还不了解苹果的推送机制,可以自行查看资料.总之整体的流程就是:APP启动的时候,获取本设备的device_token,然后把这个device_token告诉你自己的服务器,服务器拿

iOS远程推送之友盟Push

入职后的一个任务,就是做远程推送,听老大说用的是友盟Push.所以就看了一下友盟push,具体的集成以及证书的生成请参照这里.具体的就不再多说了,主要是自己重新封装了一下UMessage,具体的内容如下: // // ZGUmessagePush.h // NotePad // // Created by zhanggui on 15/10/19. // Copyright © 2015年 xiaoguizi. All rights reserved. // #import <Foundatio

iOS远程推送,从机制到实现,尽量详细

本人第一次写博客,写的不好的地方大家请见谅. 本文主要参考了http://blog.csdn.net/showhilllee/article/details/8631734,感谢showhilllee详细的讲解.因为在做的过程中有些自己的理解和变化,所以自己再写一遍关于推送的详细博客. 本文分为四部分介绍: 一.解释APNS远程推送 二.配置推送的证书 三.导出自己服务器可用的证书 四.代码实现设备注册推送.获取推送消息 好了,现在开始正式讲解推送. 一.首先上一个老图,苹果很早就给大家的,推送

iOS 远程推送通知 详解

1: ios本地通知和远程通知 http://wangjun.easymorse.com/?p=1482 2: 苹果远程通知服务申请激活例图 (外国佬写的.) http://mobiforge.com/developing/story/programming-apple-push-notification-services 3:书籍参考:iPhone 开发秘籍 第16章 推送通知. 好了,进入正文: 首先是申请证书的网址 https://developer.apple.com/ios/manag

IOS远程推送证书的制作步骤

今天还在看环信的使用方法,在环信的官网上发现了这组制作远程推送证书的一组图片,正好之前本人没有写过关于远程证书的笔记,这里要写一篇博文,整理一下远程推送证书的制作流程,尽管如此,本篇博文依然是作者原创,方便自己学习.参考使用.(声明本文的图片全部来自网络,是为了节省时间) (1)打开开发者中心,并登陆自己的开发者账号(或者公司的开发者账号) (2)从Member Center进入Certificates, Identifiers & Profiles (3)选择要制作的证书为推送证书 对于开发环

iOS远程推送原理

远程推送 就是从远程服务器推送消息给客户端的通知,当然需要联网. 远程推送服务APNs (Apple Push NotificationServices) 为什么需要远程推送通知? 传统获取数据的局限性是只要用户关闭了app,就无法跟app的服务器沟通,无法从服务器上获得最新的数据内容 而远程推送通知可以解决这个问题,不管用户打开还是关闭app,只要联网了,都能接收到服务器推送的远程通知. 我们先从网络连接开始了解下. http协议:是个短连接,一个请求一个响应就结束了.典型的网络请求. tcp