个推多厂商集成

作者: 凌空御风 | 来源:发表于2019-01-10 17:42 被阅读11次

    背景

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

    集成步骤

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

    开发

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

    服务端

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


    image

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

    客户端

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

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

    相关文章

      网友评论

        本文标题:个推多厂商集成

        本文链接:https://www.haomeiwen.com/subject/twoarqtx.html