集成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为什么不在系统里设置一个推送接口技术呢?

给你个手把手教你集成的网址

    原文作者:码码大人
    原文地址: https://blog.csdn.net/jinrumorijuesha/article/details/71515411
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞