PushiOS优秀开发文章

iOS应用Push功能从0到1

2019-05-07  本文已影响0人  楚丶liu香

APNs(Apple Push Notification service)是一种供应用程序开发人员将信息传播到iOS、tvOS和macOS设备上的服务。在用户设备上首次启动应用程序时,系统会自动在App和APNs之间建立经过认证、加密并且持久的IP连接,以保证App能够接收通知。

本文的主要内容有两个,一个是介绍Push证书的相关知识;二是如何创建Push证书并且导出对应的p12文件。

1、Push分类

通常iOS Push可以分为三种类型:

  1. 在线Push:即时通讯App通常会使用这种类型的Push,比如QQ、微信等App会通过IM自建的网络长连接将聊天消息和指令进行推送。
  2. 本地Push:iOS本地通知会使用这种类型的Push,比如闹钟的定时提醒,邮件的提醒事项等。
  3. 远程Push:也就是开篇提到的APNs,这也是本篇文章要介绍的内容。使用这种类型的Push,即使App处于后台或者完全被杀死的情况下,仍然能够通过网络获取到推送消息。

2、Push原理

Push原理

整个过程分为三步:

  1. Provider相当于自己的服务器,首先Provider将要发送的消息以及目标设备的标识(device token)发送给APNs
  2. 其次APNs收到后在已注册的Push服务设备列表中查找对应的设备,并将消息发送给该设备
  3. 最后iOS设备接受到消息后传递给相应的应用程序,并按照设定的提醒风格展示在设备上。

备注:

device token是APNs用于区分识别每个iOS设备和设备上不同app的一个标识符,还可以用于APNs通过它将推送消息路由到指定设备上

APNs uses device tokens to identify each unique app and device combination. It also uses them to authenticate the routing of remote notifications sent to a device

To protect user privacy, do not use device tokens to identify user devices. Device tokens change when the user updates the operating system and when a device’s data and settings are erased. As a result, apps should always request the current device token at launch time.

3、工作流程

Push工作流程

工作流程分为五步:

  1. App首先要向APNs注册推送服务,注册成功后会返回一个device token,这是iOS设备的唯一标识。
  2. App接收APNs返回的device token。
  3. App将返回的device token发送给自己的Push服务端,完成整个注册服务过程。
  4. 当有需要Push的消息是,服务端将Push消息和目标设备标识(device token)按照APNs指定的格式打包发送给APNs。
  5. APNs接收到Push服务端发送的消息后,根据device token查找对应的iOS设备,并将该消息发送给目标iOS设备。

4、Push证书

整个Push过程最重要的一环:Push证书,基于Push证书的身份验证,应用程序和APNs之间才能建立安全可靠的链接。Push证书有效期为一年,为了避免Push服务终端,一定要记得在过期之前更新证书。下面我们来看下如何注册Push证书。

1.创建CSR文件

CSR文件01 CSR文件02

最后选择“继续”将后缀为certSigningRequest的CSR文件导出到本地即可。

2.创建Push证书

证书创建01 证书创建02 证书创建03 证书创建04 证书创建05

3.导出Push证书

导出证书01 导出证书02

证书导出成功,将导出的p12文件发送给负责Push功能的服务端同学。

如果想要完整的完成Push功能,还要在Xcode里边做相应的参数设置和代码开发,这里不再赘述,如有兴趣可以自行研究。

参考

官方文档
史上最全iOS Push技术详解

上一篇下一篇

猜你喜欢

热点阅读