APP(Android + IOS)消息推送的原理

以 iOS 为例。

APNs (英文全称:Apple Push Notification service),即苹果推送通知服务。

消息推送分为本地通知和远程通知,本地通知是由本地应用触发的,是基于时间行为的一种通知形式,例如闹钟定时、待办事项提醒,又或者一个应用在一段时候后不使用通常会提示用户使用此应用等都是本地通知,因为本地通知没有服务器的参与,所以我们在这里不展开讨论,主要来了解一下远程通知。

远程通知主要步骤为:

  • 在 APNs 下载 push 证书,设置在服务器中
  • APP 获取 APNs 分配的 deviceToken (应用的唯一标识,不同设备,不同的应用 deviceToken 都会不同),提交给服务器,服务器记录下 deviceToken
  • 消息推送时,服务器将 deviceToken 和要发送的消息提交给 APNs,并使用 push 证书签名
  • APNs 会在自己已经注册的 iPhone 列表中根据 deviceToken 查找目标 iPhone。然后将消息发给目标 iPhone。
  • iPhone 会把消息发送给相应的程序,并且已设定的方式弹出。

自己实现远程推送的功能会有很多的配置工作,再加上以后还有 Android 设备的推送,有很多繁琐的工作要处理,所以我们一般使用第三方的推送服务,省去了很多开发工作,第三方推送的统计也同时满足了运营的需求。


如:

极光推送