一、消息推送原理

在实现消息推送之前先提及几个于推送相关概念,如下图:

ios 实时消息推送 ios的消息推送_ios 实时消息推送

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]。

ios 实时消息推送 ios的消息推送_ios 实时消息推送_02

二、消息推送实现

1、生成*.certSigningRequest文件

步骤如下:
[MacBook-应用程序-实用工具-钥匙串访问-证书助手-从证书机构求证书-证书信息(用户电子邮箱地址{填写您的邮箱,如:your@email.com},常用名称{任意,如:PushDemo},请求是:{单选,选择‘存储到磁盘’})-继续-保存],这时会在您指定的地方生成你指定的文件,默认为CertificateSigningRequest.certSigningRequest文件,这里命名为:PushDemo.certSigningRequest.在此*.certSigningRequest已经生成,具体操作步骤如图所示。

ios 实时消息推送 ios的消息推送_应用程序_03


ios 实时消息推送 ios的消息推送_App_04

如果生成成功,则会在[钥匙串访问|登录|密钥]栏目中列出与*.certSigningRequest关联的密钥,这里是PushDemo,如图所示:

ios 实时消息推送 ios的消息推送_App_05

2、新建一个App ID(在苹果开发者账号中配置)

(1)、 登录iOS Dev Center,登录成功后,点击(Certificates,Identifiers&Profiles对应链接),如图所示:

ios 实时消息推送 ios的消息推送_应用程序_06


(2)、创建APP IDs

ios 实时消息推送 ios的消息推送_ios 实时消息推送_07


填写信息

ios 实时消息推送 ios的消息推送_推送_08


选中Push Notifications

ios 实时消息推送 ios的消息推送_App_09

点击创建,生成APP IDs

ios 实时消息推送 ios的消息推送_应用程序_10

(3)、绑定推送证书

编译上边创建的APP IDs

ios 实时消息推送 ios的消息推送_ios_11


Development 测试推送

Production 生产推送

ios 实时消息推送 ios的消息推送_ios_12


选中上面创建的certSigningRequest文件;

ios 实时消息推送 ios的消息推送_推送_13


点击下载。