摘抄:脚本之家
一、消息推送原理
在实现消息推送之前先提及几个于推送相关概念,如下图:
1、简介
(1)、Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provider可以理解为服务端[消息的发起者]);
(2)、APNS:Apple Push Notification Service[苹果消息推送服务器];
(3)、iPhone:用来接收APNS下发下来的消息;
(4)、Client App:IOS设备上的应用程序,用来接收iphone传递APNS下发的消息到制定的一个客户端 app[消息的最终响应者];
2、阶段
上图可以分为三个阶段:
阶段一:Provider[服务端]把要发送的消息,目的IOS设备标识打包,发送给APNS;
阶段二:APNS在自身的已注册Push服务的IOS设备列表中,查找有相应标识的IOS设备,并将消息发送到IOS设备;
阶段三:IOS设备把发送的消息传递给对应的应用程序,并且按照设定弹出Push通知。
3、过程
(1)、[Client App]注册消息推送;
(2)、[Client App]跟[APNS Service]要deviceToken, Client App接收deviceToken;
(3)、[Client App]将deviceToken发送给[Provider]Push服务端程序;
(4)、当Push服务端程序满足发送消息条件了,[Provider]向[APNS Service]发送消息;
(5)、[APNS Service]将消息发送给[Client App]。
二、消息推送实现
1、生成*.certSigningRequest文件
步骤如下:
[MacBook-应用程序-实用工具-钥匙串访问-证书助手-从证书机构求证书-证书信息(用户电子邮箱地址{填写您的邮箱,如:your@email.com},常用名称{任意,如:PushDemo},请求是:{单选,选择‘存储到磁盘’})-继续-保存],这时会在您指定的地方生成你指定的文件,默认为CertificateSigningRequest.certSigningRequest文件,这里命名为:PushDemo.certSigningRequest.在此*.certSigningRequest已经生成,具体操作步骤如图所示。
如果生成成功,则会在[钥匙串访问|登录|密钥]栏目中列出与*.certSigningRequest关联的密钥,这里是PushDemo,如图所示:
2、新建一个App ID(在苹果开发者账号中配置)
(1)、 登录iOS Dev Center,登录成功后,点击(Certificates,Identifiers&Profiles对应链接),如图所示:
(2)、创建APP IDs
填写信息
选中Push Notifications
点击创建,生成APP IDs
(3)、绑定推送证书
编译上边创建的APP IDs
Development 测试推送
Production 生产推送
选中上面创建的certSigningRequest文件;
点击下载。