整理 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的手機才能收到推送。