华为厂商通道集成

更新时间:2025-03-21 02:11:30

本章节介绍如何集成移动推送提供的华为厂商通道SDK。

准备工作

  • 已经按照Android SDK接入完成了移动推送SDK的接入。

  • 已经在华为开发者联盟注册了应用,如果没注册请登录华为开发者联盟,注册您的应用。然后在应用信息中获取APP IDClient Secret。

    1F4237D9-8520-45F3-84AE-6F00C0105575

  • 已经在华为开发者联盟配置SHA256证书指纹。如未配置请参见华为官方文档配置AppGallery Connect

  • 已经设置消息回执,如未设置可参考设置方法:消息回执

    重要

    使用辅助弹窗后,华为通道的到达率统计覆盖用户点击华为弹窗推送通知的场景,未点击部分暂未覆盖,您可在华为端设置消息回执,便于移动推送更好地统计推送数据。

    开通回执需配置回调地址:https://amspush-ack.aliyuncs.com/hw/

    若配置了多个回调地址,需要将上述回调地址对应的配置设为默认回执,或者将回执ID配置到控制台的默认回执ID中。

  • 已经在EMAS控制台配置了推送密钥,如未配置,请登录EMAS移动推送控制台,设置您的华为推送密钥(AppID、AppSecret、默认回执ID),设置方法参见配置厂商通道密钥

    说明

    EMAS控制台配置华为推送参数时需要的AppSecret是华为开发者联盟应用信息的Client Secret。

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

说明

3.2.0及以上版厂商通道扩展包以aar形式透出,省去manifest文件配置,减少出错概率。

1.1 配置Maven仓库

下面分别介绍Gradle 7.0及以上推荐的dependencyResolutionManagement配置方式和Gradle 7.0以下推荐的allprojects配置方式。

1.1.1 dependencyResolutionManagement方式

在您的根级(项目级)Gradle 文件(<project>/settings.gradle)中,在dependencyResolutionManagementrepositories中添加Maven仓库地址。

dependencyResolutionManagement {
  repositories {
    maven {
      url 'https://developer.huawei.com/repo/'
    }
  }
}

1.1.2 allprojects方式

在您的根级(项目级)Gradle 文件(<project>/build.gradle)中,在allprojectsrepositories中添加Maven仓库地址。

allprojects {
  repositories {
    maven {
      url 'https://developer.huawei.com/repo/'
    }
  }
}

1.2 添加SDK依赖

在您的模块(应用级)Gradle 文件(通常是<project>/<app-module>/build.gradle)中,在dependencies中添加SDK依赖。

重要
  • 请阅读Android SDK版本说明,下载对应版本SDK或获取最新SDK配置信息。

  • 华为推送的2.X版本SDK将于2021930日下线。为了避免推送受到影响,请尽快升级推送SDK及华为厂商通道SDK3.2.4版本及以上。

  • 华为推送在2023915日起对本地通知纳入每天通知条数的管控,请升级推送SDK3.7.0及以上版本,请参见相关文档华为推送服务管控新规及适配

dependencies {
    implementation 'com.aliyun.ams:alicloud-android-third-push-x.x.x'
    implementation 'com.aliyun.ams:alicloud-android-third-push-huawei:x.x.x'
}

第二步:配置使用SDK

2.1 配置AppID

在应用级的AndroidManifest.xml文件下的application节点下添加meta-data来配置AppID。

<meta-data
	android:name="com.huawei.hms.client.appid"
 	android:value="appid=您的华为AppID" />

2.2 SDK初始化

重要

SDK初始化务必在Application中执行且放在推送SDK初始化代码之后,否则可能导致厂商通道注册失败。

通过如下方式进行初始化:

Kotlin
Java
// 注册方法会自动判断是否支持华为系统推送,如不支持会跳过注册。
HuaWeiRegister.register(application)
// 注册方法会自动判断是否支持华为系统推送,如不支持会跳过注册。
HuaWeiRegister.register(application);
说明

注册方法会自动判断是否支持华为系统推送,如不支持,则会跳过注册。

2.3 混淆配置

如果集成推送SDK的工程开启了代码混淆,需要添加以下厂商通道的ProGuard配置。

# 华为通道
-keep class com.huawei.** {*;}
-dontwarn com.huawei.**

第三步:接入验证

3.1 打开SDK日志

Kotlin
Java
val pushService = PushServiceFactory.getCloudPushService()
//仅适用于Debug包,正式包不需要此行
pushService.setLogLevel(CloudPushService.LOG_DEBUG)
CloudPushService pushService = PushServiceFactory.getCloudPushService();
//仅适用于Debug包,正式包不需要此行
pushService.setLogLevel(CloudPushService.LOG_DEBUG);      

3.2 确认成功方法

华为通道初始化成功,可以看到以下日志:

2032A017-A315-4A89-A202-D10872D3DEA7

后续步骤

您已经可以通过EMAS后台将推送通知通过厂商通道推送到手机通知栏,但是要处理点击通知后的逻辑,只能通过辅助弹窗来接收推送数据,详情请参见辅助弹窗接入

重要
  • 使用移动推送进行厂商通道推送时(使用移动推送控制台或者OpenAPI进行推送时),服务端必须参考辅助弹窗文档进行服务端配置,若服务端参数不设置,不会给厂商通道进行推送。

厂商通道常见问题

  • 本页导读 (0)
  • 准备工作
  • 第一步:将SDK添加到您的应用
  • 1.1 配置Maven仓库
  • 1.2 添加SDK依赖
  • 第二步:配置使用SDK
  • 2.1 配置AppID
  • 2.2 SDK初始化
  • 2.3 混淆配置
  • 第三步:接入验证
  • 3.1 打开SDK日志
  • 3.2 确认成功方法
  • 后续步骤
  • 厂商通道常见问题