本章节介绍当您自行接入厂商通道原生SDK时,如果使用移动推送需要的配置。
简介
厂商通道原生SDK集成,由您自行接入厂商提供的通道SDK和自行进行初始化。
此方式不限制厂商通道SDK版本,不需要集成移动推送提供的厂商SDK。
该接入方式,不要求厂商通道SDK版本,不要求使用阿里云移动推送已经集成好的厂商SDK,需要自行接入厂商通道SDK和自行进行初始化,然后在厂商通道初始化成功后,将厂商的设备ID通过接口上传即可,主要针对以下场景:
使用厂商通道用于其他业务需求。
与其他已经集成好厂商通道的SDK发生依赖冲突,比如其他推送或即时通讯产品等。
通道集成
准备工作
请阅读Android SDK版本说明,获取最新SDK配置信息。
添加依赖
说明本文档接入方式,下面添加的SDK最低使用3.2.3版本。
方式一:手动集成
将辅助通道扩展包放置到app module的libs路径下,并在app module的build.gradle文件中添加如下配置:
repositories { flatDir { dirs 'libs' //this way we can find the .aar file in libs folder } } ... dependencies { ...... //根据具体的版本添加依赖 implementation(name: 'alicloud-android-third-push-x.x.x', ext: 'aar') implementation fileTree(include: ['*.jar'], dir: 'libs') }
方式二:Maven配置
项目顶层build.gradle中添加Maven仓库地址:
allprojects { repositories { maven { url 'http://maven.aliyun.com/nexus/content/repositories/releases/' } } }
gradle添加依赖:
dependencies { implementation 'com.aliyun.ams:alicloud-android-third-push:x.x.x@aar' }
上传厂商设备ID
在厂商通道初始化成功后,调用
ThirdPushManager.reportToken()
上传厂商设备ID:/** * 以华为为例 * * @param context 上下文对象,建议传ApplicationContext * @param thirdTokenKeyword 厂商设备ID的标识,下面做详细介绍 * @param token 厂商设备ID,厂商设备ID叫法不同,此处以token为统称 */ ThirdPushManager.reportToken(context, ThirdPushReportKeyword.HUAWEI.thirdTokenKeyword, token);
ThirdPushReportKeyword
类介绍:管理厂商关键字的枚举类,用于上报厂商设备ID以及收到消息类型的推送时选择关键字使用,目前支持并定义了华为、小米、OPPO、vivo、魅族、Google通道的关键字。
public static enum ThirdPushReportKeyword { HONOR("HONOR_TOKEN", "honor"), HUAWEI("HW_TOKEN", "huawei"), XIAOMI("MI_TOKEN", "xiaomi"), OPPO("OPPO_TOKEN", "oppo"), VIVO("VIVO_TOKEN", "vivo"), MEIZU("MZ_TOKEN", "meizu"), FCM("gcm", "gcm"); public String thirdTokenKeyword;//厂商的设备ID标识 public String thirdMsgKeyword;//厂商的消息标识 private ThirdPushReportKeyword(String thirdTokenKeyword, String thirdMsgKeyword) { this.thirdTokenKeyword = thirdTokenKeyword; this.thirdMsgKeyword = thirdMsgKeyword; } }
厂商通道通知类型-辅助弹窗
厂商通道,除Google通道外,只能通过辅助弹窗来接收推送数据,详情参考辅助弹窗接入文档,并注意:
在阿里云这边进行厂商通道推送时(使用移动推送控制台或者OpenAPI进行推送时),服务端请必须参考辅助弹窗文档进行服务端配置,服务端参数不设置,不会给厂商通道进行推送。
使用辅助弹窗接收数据,请务必先执行如下操作,否则会解析数据失败。初始化厂商通道解码器,必须在Application中,并且在厂商通道初始化之前调用,Google通道不需要:
//此处以华为为例 ThirdPushManager.registerImpl(new HuaweiMsgParseImpl()); //MsgParseImpl 目前有 HuaweiMsgParseImpl、XiaoMiMsgParseImpl、OppoMsgParseImpl、VivoMsgParseImpl、MeizuMsgParseImpl
厂商通道消息类型
接收到消息类型需要统一回调处理,可以使用
ThirdPushManager.onPushMsg
把消息内容传到阿里云推送SDK。/** * 以华为为例 * * @param context 上下文对象,建议传ApplicationContext * @param thirdTokenKeyword 厂商消息的标识 * @param token 厂商的消息内容 */ ThirdPushManager.onPushMsg(context, ThirdPushReportKeyword.HUAWEI.thirdMsgKeyword, msgContent);
- 本页导读 (0)