个推多厂商集成

背景

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

集成步骤

  • 找个推人员后台开通特殊机型配置权限,有华为、小米、魅族等厂商推送的配置项。
  • 到各应用市场后台申请推送相关的key,配置到个推后台,使其生效。
  • 集成个推多厂商sdk,推荐添加Maven库地址形式,简单方便。
  • 服务器后台透传消息格式修改(目前服务器后台的消息格式都是透传格式)。
  • 客户端加入Activity承接页,用于获取点击时的消息内容。

开发

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

服务端

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


个推多厂商集成_第1张图片
image

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

客户端

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

个推多厂商集成_第2张图片
image

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

你可能感兴趣的:(个推多厂商集成)