TOC

如何推送消息给手机

我没有做过移动端开发,我突然想到,如果我们要给手机端推送消息,会有些什么办法。
想来想去只有短信是最容易实现的,而且效果可以接受。

下面的信息可以忽略。


理论上来讲,我只想到这三种方法:

  1. 短信 to SIM
  2. 邮件 to MailBox (手机上安装邮件客户端)
  3. App 消息推送 to App (设备号 + App 名称(包名) / 帐号)

因为我们的手机只能通过 SIM(手机号),或者别的服务帐号(手机厂商的云服务,App )来定位。

  • SIM 自带通讯功能:语音通话,SMS/MMS,5G 信息
  • 手机系统或第三方 App 的消息推送,总之锚定到某一个帐号
    • 手机系统消息应该不支持接入
    • 自己开发 App 接收消息推送(其实现原理另说)
    • 第三方 App 接入

App 消息推送的实现原理

如果是 App 起来了,当然可以和服务器端通讯拿到消息,但是大多数时候 App 都是没有启动的。
所以 App 的消息推送不能设定 App 一直启动。

iOS 平台的实现

iOS 设备注册到 APNS (Apple Push Notification Service) 得到 deviceToken
App 拿到 deviceToken 保存到服务器端
服务器端通过 APNS 发送消息给 iOS 设备(deviceToken)

Android 平台的实现

Android 官方的消息推送

  1. 第一代 Cloud to Device Messaging (C2DM)
  2. 第二代 Google Cloud Messaging (GCM)
  3. 第三代 Firebase Cloud Messaging (FCM)

第三方消息推送

但是国内的网络环境决定了谷歌的服务在国内得不到很好的支持,国内一般采用的是厂商推送服务,或者第三方推送平台。

厂商推送服务比如小米的 MiPush,华为的 PushKit,等等。

第三方推送平台比如专门做推送服务的极光推送、友盟推送,还有 BAT 的阿里云移动推送 Mobile Push、腾讯云移动推送 TPNS百度云推送,等等。

自己实现消息推送