iOS消息推送(APNS的推送机制、信鸽)

APNS的推送机制

与Android上我们自己实现的推送服务不一样,Apple对设备的控制非常严格,消息推送的流程必须要经过APNs:
iOS消息推送(APNS的推送机制、信鸽)_第1张图片
这里 Provider 是指某个应用的Developer,当然如果开发者使用信鸽的服务,把发送消息的请求委托给信鸽,那么这里的Provider就是信鸽的推送服务程序了。上图可以分为三步:
第一步:信鸽推送服务程序把要发送的消息、目的设备的唯一标识打包,发给APNs。
第二步:APNs在自身的已注册Push服务的应用列表中,查找有相应标识的设备,并把消息发送到设备。
第三步:iOS系统把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知

为了实现消息推送,有两点非常重要:
1 App的推送证书
要能够完整实现一条消息推送,需要我们在App ID中打开Push Notifications,需要我们准备好Provisioning Profile和SSL证书,并且一定要注意Development和Distribution环境是需要分开的。最后,把SSL证书导入到信鸽平台,就可以尝试远程消息推送了。
2 设备标识DeviceToken
知道了谁要推送,或者说要推送给哪个App之后,APNs还需要知道推到哪台设备上,这就是设备标识的作用。获取设备标识的流程如下:
iOS消息推送(APNS的推送机制、信鸽)_第2张图片
信鸽版本
iOS消息推送(APNS的推送机制、信鸽)_第3张图片
第一步:要求客户端设备与APNs建立TSL连接,APNs需要验证设备的有效性;
第二步:客户端App在合适的时机,借助系统提供的接口向APNs请求推送消息用的Token;(SDK 内部实现)
第三步:客户端App在合适的时机,将从APNs获取的Token注册到信鸽服务器;(SDK内部实现)
第四步:通过管理台(xg.qq.com)或者是REST API创建推送消息,然后信鸽服务器再去请求APNs下发消息;
第五步:APNs服务器接收到信鸽服务器的推送消息请求后,根据Token来将推送的消息下发到指定的设备;

信鸽sdk文档:
https://xg.qq.com/docs/ios_access.html

你可能感兴趣的:(iOS)