Android开发经验谈Android开发Android技术知识

个推多厂商集成

2019-01-10  本文已影响11人  凌空御风

背景

我们都知道推送的重要性,但是在目前国内 Android 系统的大环境下,厂家的深度定制 ROM 对系统做了越来越严格的限制,想要在所有机型上做到推送进程永久保活是不可能实现的,并且保活也会使额外功耗增加。因此,为保证推送的到达率,我们引入个推的多厂商集成方式。当用户杀掉进程或者推送服务器无法连接到客户端时,使用手机厂商系统级推送提醒用户推送达到。
厂商推送的优势在于厂商系统上拥有稳定的系统级长连接,可以做到随时接受推送消息。
方式:优先使用个推的通道进行消息下发,只有在个推通道断连时选择厂商通道进行下发,个推会根据当前机型来决定启用何种推送服务(想考米、华为、魅族)。

集成步骤

开发

多厂商集成需要客户端和服务器配合开发完成。

服务端

在透传模板升级上,增加intent参数,如下图:


image

其中component=包名/activity全路径,是点击厂商消息落地的activity页面,在这个页面获取相应的消息及处理消息点击相关逻辑。

客户端

因为厂商推送的消息是无感知的,即程序上无法知道消息已达、已显示等。客户端只能处理相应的点击事件,定义activity承接点击事件,获取相应的消息内容,处理消息逻辑。如下图:

image
其中getStringExtra获取服务器传入的参数,即透传的消息内容。然后和之前一样处理消息逻辑。
注意:如果接入了华为推送, 华为手机上被打开的 activity , AndroidManifest 中必须设置 android:exported="true", 否则无法启动你配置的activity。
上一篇下一篇

猜你喜欢

热点阅读