集成FCM推送一系列問題

FCM:Firebase Cloud Messaging

  1. 首先集成FCM需要一定的條件(必要條件:Android2.3版本以上的手機和擁有Google service的框架應用和不在國內的網絡,使用外網
  2. 第一國內的手機一般閹割了Google service的服務,第二國內網絡說是可以訪問 FCM的(延遲好像太高),一般這兩者條件克服了纔可以去集成FCM推送調試,使用FCM集成一般是在服務裏接受到推送信息,解析信息做出指定動作
    國內的FCM文檔網址 : https://firebase.google.cn/docs/ 列表內容
  3. FCM主要的是自己需要寫兩個service,一個繼承 FirebaseInstanceIdService(主要用來獲取id標識) 一個繼承 FirebaseMessagingService(主要用來處理接受的信息—推送接受核心處理類)

FirebaseMessagingService

你繼承它需要重寫onMessageReceived方法,這個方法主要是用來接受信息的,需要注意的是當你的應用狀態不同它執行的與否就不同:

  • 你的應用爲前臺進程:這個方法會執行,你推送過來的信息會走這個方法,自己處理推送的信息(需要注意的是服務在主線程不要做)

  • 你的應用爲後臺進程:這個方法不會執行,Google服務進程會自己處理,彈通知框,點了通知框自行傳數據給默認啓動的Activity(前提是你推送了數據過來)

FirebaseInstanceIdService

  • 重寫這個方法onTokenRefresh,用於得到刷新–Google修改了你這個推送需要的token值–就是拿到最新的token值,token值是因爲Google鑑於你的token值被泄漏了進行修改,token值修改的不是很頻繁,一般在這個方法裏面主要是獲取token值並上傳服務器修改當前用戶的token值

集成FCM需要有:Google服務框架,Googleplay

http://blog.csdn.net/strangenightmare/article/details/52071717
http://www.jianshu.com/p/6cf4dd76e508

  • FCM是Google開放出來的標準推送套路,它是依賴Google應用框架(Google服務,GooglePlay等)來進行推送的.爲了應對各種推送亂象(各做各的推送,就像蘋果只有一家蘋果推送樣),原生系統的FCM推送是不管你的應用是否被殺死進程都可以收到推送(因爲Google是永遠存於後臺的),而定製系統有不確定性,我小米手機國內網絡收不到推送,應用進程被kill掉收不到通知,猜測是小米手機系統問題

  • 國內有小米推送和極光等,極光等推送要做到及時接受到信息一般的套路是維持跟服務器的長鏈接—>一般就要應用保活維持鏈接—>浪費資源, 小米覺得不好—>自己小米系統裏自動維護推送的長連接—>所有推送走我的標準,走我的維護的鏈接–>這樣就不需要應用保活–>不浪費資源(不用每個推送去維持鏈接)—>然而只有小米手機適用,華爲也有自己的推送(有的應用爲了推送 要集成華爲和小米等推送,就是爲了用戶及時收到推送,因爲小米手機不支持華爲推送等) —>國家出力(福利),要準備搞一個標準應對推送太多造成手機用戶推送的亂局,所以以後有可能就一個推送SDK了.

  • 各個終端廠商的系統級推送通道不可避免的存在差異性,因此,開發者同時接入、維護多條推送通道存在着一定的困難。在此背景下,泰爾終端實驗室聯合包括華爲、OPPO、vivo、小米、三星、魅族、金立、努比亞、谷歌、百度、阿里巴巴、騰訊、個推、極光等國外內主要相關企業共同制定安卓統一推送服務(Unified Push Service,簡稱UPS)技術標準,旨在爲國內的消息推送服務建立統一的標準,爲終端用戶提供更好的手機使用體驗,爲應用開發者更好解決消息推送需求,並取得了階段性成果。

  • 個人感覺最好的方案:爲什麼不在系統裏設置一個自帶統一的接口,然而也不現實,系統版本多個,再加上各大手機廠商深度定製系統不一,再加上要適配已發佈的手機等各種問題,開發者也是頭疼這麼多的推送要集成哪個,集成後體積增加的等等問題 期待統一推送SDK能夠出來 . 然而Google爲什麼不在系統裏設置一個推送接口技術呢?

給你個手把手教你集成的網址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章