厂商通道原生SDK集成

本章节介绍当您自行接入厂商通道原生SDK时,如何使用移动推送需要的配置。

前言

除了使用EMAS已经提供的辅助通道SDK,您也可以自行接入厂商提供的通道SDK。

自行接入方式,需要自行接入厂商通道SDK和自行进行初始化,然后在厂商通道初始化成功后,将厂商的设备ID通过接口上传即可,主要针对以下场景:

  • EMAS已经提供的辅助通道SDK获取其他SDK发生冲突。

  • EMAS未提供厂商通道某个SDK版本。

准备工作

第一步:将SDK添加到您的应用

我们提供了Maven依赖和本地依赖两种集成方式,方便您根据需要将SDK添加到您的应用中。

说明
  • 建议开发者采用Maven依赖方式进行集成,配置简单,不容易出问题,后续更新方便。

  • 下面添加的SDK最低使用3.2.3版本。

1 Maven依赖方式

在您的模块(应用级)Gradle 文件(通常是<project>/<app-module>/build.gradl)中,在dependencies中添加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);