个推多厂商集成

背景

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

集成步骤

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

开发

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

服务端

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


image

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

客户端

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

image

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 由于谷歌服务在国内不能用,Android 的推送真是一大痛点,但也推动了国内一批做第三方服务的厂商。第三方推送...
    U卡技术阅读 11,647评论 1 10
  • 推送技术产生场景: --服务器端主动性: 客户端与服务器交互都是客户端主动的, 服务器一般不能主动与客户端进行数据...
    原军锋阅读 35,000评论 4 60
  • 前言 在Android开发中,消息推送功能的使用非常常见。 推送消息截图 为了降低开发成本,使用第三方推送是现今较...
    BillyLu1994阅读 9,949评论 0 2
  • 好友天行: 天行,你结婚了,我没去做你的伴郎。 你一定在婚礼里上骂了我对不对! 你结婚前一天晚上给我打电话说想给我...
    深夜一角啊阅读 2,523评论 0 0
  • 2018年5月27日 星期日 天气晴 今天早上把闺女叫起来,陪她去吃的凉面,然后我们就开...
    王文琪妈妈阅读 1,098评论 0 0