# 一、已接入服务
目前标准产品已接入平台有:华为官方服务、小米官方服务、苹果官方服务
# 二、支持设备
设备厂商 | 型号 | 系统版本 |
---|---|---|
苹果 | iPhone(全型号) | iOS 8及以上版本 |
苹果 | iPad (全型号) | iOS 8及以上版本 |
华为 | 全型号 | 参考官方文档 |
小米 | 全型号 | 参考官方文档 |
其他 | 均由小米提供服务,相关型号和系统版本参考小米官方文档 | 参考官方文档 |
# 三、消息提醒方式
目前标准产品,华为、小米和苹果设备的离线消息推送均采用的是通知栏消息(也就是系统级消息,也就是非透传类消息)。因此,消息的提醒方式全由设备系统自行管理和控制(部分设备在系统设置中有相应的用户设置)。APP 中未对消息提醒做单独控制,也无相关的功能。
透传消息和通知栏消息相关文档参考如下:
小米:https://dev.mi.com/console/doc/detail?pId=1292#_1_4 (opens new window)
苹果:iOS 系统没有透传消息和通知栏消息的区分,只有一种系统消息
其他设备:无任何控制
# 四、其它 Android 设备的离线消息
首先,离线消息推送服务 Android 系统的官方服务是 Google 提供的 GMS (Google Mobile Service) 服务,但是国内对 Google 的限制,导致目前无法正常使用 Google 的相关服务,所以也无法使用 Android 系统官方的离线消息推送服务。
因此,国内的移动设备厂商为了解决此问题,部分厂商均有单独提供并推出自己的相关服务,比如:华为、小米等。
由于海外厂商的设备绝大部分都是直接使用的 Google 官方的 GMS 服务,但因上述原因,目前标准产品并未接入 GMS 服务。为了能解决离线消息的问题,目前我们对于非华为和小米的 Android 设备,均统一使用小米的服务代替。
比如:三星设备,三星设备默认就是使用的 GMS 服务。因上述原因,目前三星设备改用的是小米的服务提供离线消息推送。
由于,小米服务在非小米的设备上运行属于第三方服务,大部分设备厂商的系统为了优化自身系统性能等原因而禁用掉第三方的服务,因导致无法正常收到消息(其中就包括三星)。也因如此,目前无法保证非小米和华为的设备能正常收到离线消息。
# 五、角标
角标的显示目前均是由设备系统自行管理,相关服务只调用第三方提供的 API 通知了系统去显示角标,而是否显示、如何显示等问题,程序中不做任何控制,因系统行为也无法控制。
# 六、消息到达率与消息延迟
目前消息到达率均主要由第三方服务决定,根据实际测试分析:华为设备到达率在 85% 以上,小米设备到达率在 85% 以上,苹果设备到达率 95% 以上
由于用户量、服务器负载、网络、业务高峰等因素影响,消息正常延迟在 15 分钟以内,极限延迟不超过 30 分钟、平均延迟 30 秒
# 七、海外用户
目前标准产品只能保证国内用户的离线消息推送服务的正常使用,海外用户由于受到相关的政策和第三方服务的限制目前暂时无法保证一定可以收到消息。
# 八、附:
关于其他应用如:微信、QQ等在各个设备上能正常收到消息的问题说明:
经过技术分析与相关资料查询,如:腾讯、阿里等这类用户量上亿级厂商的应用,绝大部分的设备厂商均会单独适配或单独提供相关的服务,甚至有些厂商与此有直接的合作。因此,这类应用在绝大部分厂商的设备上基本都能正常收到离线消息。原因其实非常明确。像微信活跃用户达到12亿,且几乎是现在人手必备而不可缺少的通讯应用,外加上现在的移动支付等。设备厂商如果无法对微信这样的 APP 提供更好更全的服务,那么是一定会对设备厂商带来相应的影响。因为,用户可能会因为手机无法收到微信的消息而更换新的手机或其他厂商的手机,但是绝大部分不会因为无法收到微信消息,而换掉微信。
