整理 Android 所有的厂家推送平台
统一推送联盟 成立之后,各大手机厂家都开始推出了自己的推送服务,打造更健康的Android推送生态。下面就汇总一下这几大推送平台,并给予开发者一些建议。
各大推送平台对比
推送平台 | 通知栏 | 透传 | 限制情况 |
---|---|---|---|
小米推送 | 支持 | 支持 | 小米手机(MIUI系统)才能在非启动状态收到推送,其他手机需要在前台或后台才能收到。 |
华为推送 | 支持 | 支持 | 部分EMUI4.0和4.1的手机,以及EMUI5.0及之后的华为手机。 |
魅族推送 | 支持 | 支持 | 魅族手机 |
OPPO 推送 | 支持 | 不支持 | 仅支持部分OPPO手机系统(ColorOS) Android APP应用 |
VIVO 推送 | 支持 | 不支持 | 只支持VIVO平台高版本部分的手机。 |
FCM | 支持 | 支持 | 安装了Google Service的手机才能收到推送,在国内无法正常收到推送。 |
建议
- 由于华为推送、OPPO推送、VIVO推送只支持部分的手机,并没有全面覆盖所有自家品牌手机,建议尽量使用自家的厂家推送,不支持的情况下就统一使用小米推送。
- 由于
OPPO推送
和VIVO推送
无法收到透传,如果对透传功能有强要求,建议自己通过netty
实现,但是需要较多的开发成本。小团队可以在全部平台都使用小米推送作为辅助推送,所有的透传推送都通过小米推送实现,通知栏推送走各大厂商推送。 - 由于FCM是需要依赖Google Service和网络环境,通常情况下不建议使用,如果有大量的国外的用户才建议使用。
- 选择推送平台尽可能选择厂家推送,服务端管理各大推送,但是工作量较多。个人建议尽可能不要选择商业推送,因为商业推送会有APP间相互唤醒,给用户一个非常不好的印象,而且纯粹的商业推送已经无法保证到达率了。当然商业推送也有他的优点,简化使用,而且有些商业推送已经支持厂家推送,可以保证到达率,但是通常需要付费才能使用。
- 由于部分厂家推送不支持别名推送,所以需要我们服务端对每个平台的token进行管理,全部通过token进行推送。
小米推送
小米消息推送服务在MIUI上为系统级通道,并且全平台通用,可以为开发者提供稳定、可靠、高效的推送服务。小米是国内最早开始做推送的手机厂家,所以基本所有的小米手机都可以在没有打开APP的情况下收到推送。
官网
https://dev.mi.com/console/appservice/push.html
文档
https://dev.mi.com/console/doc/detail?pId=230
说明
- 在MIUI上系统级长连接,最大程度提高消息送达率。
- 支持两大系统的推送服务,iOS开发者还可以将存量用户无缝迁移到小米推送中。
- 支持通知栏和透传两种方式。
- 支持所有品牌的手机。
华为推送
Huawei PUSH(华为推送服务)是华为为开发者提供的消息推送平台,虽然华为推送也很早期也有,但是华为并不重视华为推送,所以比较难用,而且早期的手机到达率也是很有问题。由于统一推送联盟的成立,华为才开始重视起来。华为推送不支持别名推送,所以必须通过服务端管理token,这一点对开发者也非常不友好。
官网
https://developer.huawei.com/consumer/cn/console#/openCard/AppService/6
文档
说明
- 部分EMUI4.0和4.1的手机,以及EMUI5.0及之后的华为手机才能收到推送。
- 支持通知栏和透传两种方式。
- 不支持别名推送,必须通过服务端管理。
魅族推送
魅族推送在Flyme系统上的长连接由系统维护,能够充分保障消息在 Flyme系统上的到达率。魅族推送虽然是后期之秀,但是魅族对待推送的态度和小米是一样的好,是真正为了做好用户服务,魅族除了推出自家的推送以外,还推出了魅族集成推送服务 ,方便用户管理多家的推送平台,这种精神非常值得嘉奖,是用心最好技术的公司。
官网
文档
http://open-wiki.flyme.cn/doc-wiki/index#id?73
https://github.com/MEIZUPUSH/PushDemo
https://github.com/MEIZUPUSH/JavaSdk
https://github.com/MEIZUPUSH/phpsdk
https://github.com/MEIZUPUSH/PushAPI
说明
- 只支持Flyme系统的魅族手机,其他手机无法收到推送。
- 单个业务在平台或 API 进行推送有速率限制,默认应用是 500 条/秒,如果超过此速率可以联系我们进行调整;
- 单个业务每天在平台或 API 进行任务推送有次数限制,默认是 1000 条/天;
- 单个设备 1 个月内不活跃,将取消订阅;
- 支持通知栏和透传两种方式。
OPPO 推送
OPPO PUSH是ColorOS上的系统级通道,为开发者提供稳定,高效的消息推送服务。
官网
文档
https://push.oppo.com/documents
说明
- 目前仅支持OPPO手机系统(ColorOS) Android APP应用。
- OPPO推送暂时只支持通知栏消息的推送。消息下发到OS系统模块并由系统通知模块展示,在用户点击通知前,不启动应用。整个过程环保省电。
VIVO 推送
Funtouch OS系统级通道,提供稳定、可靠、高效的推送服务。
官网
https://dev.vivo.com.cn/openAbility/pushNews
文档
说明
- Funtouch OS系统长连接服务,到达率高。
- 只支持VIVO平台高版本部分的手机。
- 为避免造成用户打扰,目前vivo手机接收的消息为7:00-23:00,服务器允许推送时间为7:00-22:00,单推不受此时间限制,在限制时间之外发送的群推或全推,会被抛弃。
- 目前是每个客户端每天可接收单推消息不受限制,群推消息和全推消息都属于公共类资讯,每个用户每天可以接收5条公共类消息;
FCM 推送(Firebase Cloud Messaging)
FCM是Google推出的新推送推送平台,是用来代替GCM(Google Cloud Messaging),主要用于消息推送的,即使在应用没有起来的情况下,由于FCM需要google service支持,在国内基本不能用。
官网
https://console.firebase.google.com
文档
https://firebase.google.com/docs/cloud-messaging?authuser=0
说明
- 支持iOS、Android 或网页 (JavaScript) 客户端应用。
- 在国内基本无法正常工作,只有较多海外用户才建议使用。
- 只有安装了Google Service的手机才能收到推送。