本章节介绍当您自行接入厂商通道原生SDK时,如何使用移动推送需要的配置。
前言
除了使用EMAS已经提供的辅助通道SDK,您也可以自行接入厂商提供的通道SDK。
自行接入方式,需要自行接入厂商通道SDK和自行进行初始化,然后在厂商通道初始化成功后,将厂商的设备ID通过接口上传即可,主要针对以下场景:
EMAS已经提供的辅助通道SDK获取其他SDK发生冲突。
EMAS未提供厂商通道某个SDK版本。
准备工作
已经按照Android SDK接入完成了移动推送SDK的接入。
第一步:将SDK添加到您的应用
我们提供了Maven依赖和本地依赖两种集成方式,方便您根据需要将SDK添加到您的应用中。
建议开发者采用Maven依赖方式进行集成,配置简单,不容易出问题,后续更新方便。
下面添加的SDK最低使用3.2.3版本。
1 Maven依赖方式
在您的模块(应用级)Gradle 文件(通常是<project>/<app-module>/build.gradl
)中,在dependencies
中添加SDK依赖。
请阅读Android SDK版本说明,下载对应版本SDK或获取最新SDK配置信息。
dependencies {
implementation 'com.aliyun.ams:alicloud-android-third-push:x.x.x'
}
2 本地依赖方式
2.1 下载SDK
参考下载和集成SDK,选择移动推送进行下载,将SDK包内所有文件拷贝至您的模块(应用级)的<project>/<app-module>/libs
目录下。
2.2 添加SDK依赖
2.2.1 配置本地SDK目录
在您的模块(应用级)Gradle 文件(通常是<project>/<app-module>/build.gradle
)中,添加本地SDK文件目录地址。
repositories {
flatDir {
dirs 'libs'
}
}
2.2.2 添加SDK依赖
在您的模块(应用级)Gradle 文件(通常是<project>/<app-module>/build.gradle
)中,的dependencies
中添加SDK依赖。
dependencies {
implementation(name: 'alicloud-android-third-push-x.x.x', ext: 'aar')
}
第二步:配置使用SDK
1 SDK初始化
请根据您要接入的厂商通道接入文档进行接入初始化。
2 上传厂商设备ID
在厂商通道初始化成功后,调用ThirdPushManager.reportToken()
上传厂商设备ID:
/**
* 以华为为例
*
* @param context 上下文对象,建议传ApplicationContext
* @param thirdTokenKeyword 厂商设备ID的标识,下面做详细介绍
* @param token 厂商设备ID,厂商设备ID叫法不同,此处以token为统称
*/
ThirdPushManager.reportToken(context, ThirdPushReportKeyword.HUAWEI.thirdTokenKeyword, token);
3 注册厂商推送通知数据解码器
用户点击厂商推送通知后,辅助弹窗会接收处理推送数据,您需要注册对应的数据解码器。
//此处以华为为例
ThirdPushManager.registerImpl(new HuaweiMsgParseImpl());
消息解码器支持HuaweiMsgParseImpl、XiaoMiMsgParseImpl、OppoMsgParseImpl、VivoMsgParseImpl、MeizuMsgParseImpl。
4 处理厂商推送透传消息数据
在厂商通道接收到透传消息时,可以使用ThirdPushManager.onPushMsg
把消息内容传到EMAS移动推送SDK进行处理。
/**
* 以华为为例
*
* @param context 上下文对象,建议传ApplicationContext
* @param thirdTokenKeyword 厂商消息的标识
* @param token 厂商的消息内容
*/
ThirdPushManager.onPushMsg(context, ThirdPushReportKeyword.HUAWEI.thirdMsgKeyword, msgContent);