Android FCM 推送无法接收的原因 |
您所在的位置:网站首页 › 应聘麦当劳简历怎么写啊 › Android FCM 推送无法接收的原因 |
害怕文章以后找不到了,在此处备份一份 首先讲一下什么样的手机以及状态可以接收 FCM 推送, 以及不同的数据格式会走哪条通道 格式一 { "to": "cvRJ6BXFTQiyB9W5pqcx-E:APA91bE", "notification": { "title": "Pickup Offer!", "body": "Address detail", "click_action": "yourapp://pickup" } }格式二 { "to":"dk_FO2LEdlI:APA0", "data":{ "title":"Pickup Offer!", "body":"Address detail", "click_action":"yourapp://pickup", "event":"PICKUP", "address":"Address detail" } }格式三 { "to":"dk_FO2LEdlI:APA0", "notification": { "title": "Pickup Offer!", "body": "Address detail", "click_action": "yourapp://pickup" }, "data":{ "title":"Pickup Offer!", "body":"Address detail", "click_action":"yourapp://pickup", "event":"PICKUP", "address":"Address detail" } }一. 国外原生系统: 无论手机和应用处于什么状态,大概率会收到推送, 因为 google 服务是原装的,随系统启动, 所以 Google Service 可以长期后台运行,并且在收到消息后会唤起应用注册的广播或服务,从而唤起应用。 但是不同的推送格式会走不同的通道,在应用运行状态下,百分百会走 FirebaseMessagingService 但是在应用被 Kill 后, 如果接收到格式一的推送, 系统会绕过你的应用直接创建推送,并通过 click_action 来实现点击跳转。 而如果接收到格式二,格式三的推送, 则会走你扩展 MyFirebaseMessagingService 重写的方法 二. 国内定制系统: 在翻墙的环境下,且应用运行状态下, 大概率会收到推送,但在应用被 Kill 后,某些手机版本可以收到格式一的推送。 而格式二三 的推送, 则无法送达的,因为FCM service 被干掉了。 三. 推送率 以上所述的可接收推送都是大概率,但千万别拍着胸脯向PM保证绝对没问题,因为还有很多其它因素导致无法接收,让我们列举一下: 1 网络堵塞,或FCM服务器堵塞, 早上发的消息, 晚上才到 2 应用被杀死时无法接受消息,因为广播或Service无法启动, 打开应用时,会疯狂推送离线消息, 是因为缓存机制,默认4个周的缓存,证据在此 3 优先级过低, 不予打扰用户,证据在此 4 电源管理导致,证据在此,安卓官方,三星官方, PushWoosh 总结 能不能收到推送,全看你的网络状况以及FCM服务有没有被干掉或禁止, 如果被干掉了, 还要看系统会不会处理显示格式一的推送。 有些手机真的邪乎, 就算是国外版的某些版本三星,也会在杀死App后,不再唤醒App所注册的推送广播或服务 原文链接 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |