文档导航
Android
SDK 版本:  5.X
公告:融云新文档中心已上线,欢迎到新文档中心阅读 Android IMLibAndroid IMKit 的文档。

集成华为推送

更新时间:2024-02-23 PDF

集成华为推送

按照本指南集成 华为推送服务(Push Kit),让融云 SDK 支持从华为推送服务获取推送通知。

在集成第三方推送前,请确保已在控制台配置 Android 应用 ID。详见推送集成概述

在控制台配置华为推送

如果想通过华为推送接收融云即时通讯服务的推送通知,您需要在控制台上提供您的华为推送应用的详细信息。

  1. 前往华为 AppGallery Connect 网站,点击我的项目,在项目列表中找到您的项目,上方导航栏选择需要查看信息的应用。

    如下图所示,test-push 是项目名称,huawei-app-1 是已关联到该项目的应用。

    提示

    如果没有华为开发者账号,或尚未创建项目和应用,请先创建账号、项目和应用。详见华为开发者文档创建账号创建应用。请确保项目下已关联了应用,启用了推送服务,并配置签名证书指纹。如您对华为控制台上配置推送服务的流程有任何疑问,可参见华为官方开发者文档配置 AppGallery Connect

    您需要记录下应用下的 Client ID(同 App ID) 和 Client Secret

  2. 打开控制台,在应用标识页面点击设置推送,找到 Android > 华为推送,填入上一步获取的 Client IDClient Secret

  3. (可选)配置自定义点击消息动作的 Intent。详见华为官方开发者文档自定义点击消息动作

    • 注意 intent 的格式必须要以 end 结尾。
    • 自定义 intent 后,需按照定义 intent 在 AndroidManifest.xml 的 Activity 中配置如下 intent-filter
  4. (可选)配置推送角标数。详见华为官方开发者文档桌面角标

    • badgeAddNum:应用角标累加数字非应用角标实际显示数字,为大于0小于100的整数。例如,某应用当前有N条未读消息,若 add_num 设置为3,则每发一次消息,应用角标显示的数字累加3,为 N+3。
    • Activity:应用入口 Activity 类全路径。样例:com.example.hmstest.MainActivity
  5. (可选)配置默认的华为推送通道的消息自分类标识,例如 IM。App 根据华为要求完成自分类权益申请申请特殊权限 后配置字段有效。详见华为推送官方文档消息分类标准。配置成功后,当前包名接收的华为推送通知默认均会携带该字段。注意,如果客户端或服务端发送消息时配置了华为推送 Category,则使用发消息时指定的配置。

  6. 配置推送通知标题。设置默认的推送通知标题。一般情况下客户端发送消息转 Push 时不使用此标题设置。在调用融云服务端 API /push.json/push/user.json/push/custom.json 接口推送通知时,如未传入通知标题,则使用该处设置的标题。从服务端发消息时,如果发送用户 ID 在融云服务端没有用户名,也会使用此 “推送通知标题”。

  7. 保存设置。所有设置 30 分钟后生效。

您已完成需要控制台华为推送配置的全部内容。现在可以设置客户端集成。

配置客户端接收华为推送

首先,需要将华为推送客户端 SDK 添加到您的 Android 项目。

根据华为开发者文档集成 HMS Core SDK,您需要将 “agconnect-services.json” 文件添加到您的 App 中。点击 agconnect-services.json 下载配置文件。

将下载好的 agconnect-servics.json 文件放到 app 模块下的根目录,如下图:

导入华为推送 SDK

华为推送客户端 SDK 需要从华为 Maven 仓库获取。Android Studio的代码库配置在 Gradle 插件 7.0 以下版本、7.0 版本和 7.1 及以上版本有所不同。详见华为官方开发者文档集成 HMS Core SDK中的「配置 HMS Core SDK 的 Maven 仓库地址」。

本步骤中以 Gradle 插件 7.0 以下版本为例。打开在 project 的 build.gradle 中添加如下内容。

allprojects {
    repositories {
        //Add Huawei Maven
        maven {url 'http://developer.huawei.com/repo/'}
    }
}

buildscript{
    repositories {
        //Add Huawei Maven
        maven { url 'http://developer.huawei.com/repo/' }
    }
    dependencies {
        // Add this line
        classpath 'com.huawei.agconnect:agcp:1.6.1.300'
    }
}
              
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

提示

“buildscript > dependencies” 下需要添加 AGC 插件配置,请您参见华为官方开发者文档 AGC 插件依赖关系选择合适的 AGC 插件版本。

添加华为 Maven 仓库后,您可以在 App 的 build.gradle 中添加依赖,直接引入华为推送客户端 SDK。建议您集成的SDK使用最新版本号,版本号索引请参见华为官方开发者文档推送服务 SDK 版本更新说明

在 app 模块的 build.gradle 添加如下内容:

android {
 defaultConfig {
    //...
    manifestPlaceholders = [
        HW_PUSH_ENABLE : "true"
    ]
 }
}
 dependencies {
    // x.y.z 为当前 IM SDK 版本号
    implementation 'cn.rongcloud.sdk.push:huawei:x.y.z'
}
...
// Add to the bottom of the file
apply plugin: 'com.huawei.agconnect'

              
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

提示

华为 Push SDK 依赖说明:最新版本 Push SDK 需要终端设备上安装HMS Core(APK)4.0.0.300 及以上版本;如果用户手机没有安装,您的应用调用 HMS Core 时,会自动引导用户提示安装。

默认支持 HMS Core(APK)的手机包括:部分 EMUI 4.0 和 4.1 的手机,以及 EMUI 5.0 及之后的华为手机。

启用华为推送服务

请在初始化融云 SDK 之前启用华为推送服务。融云 SDK 将向华为推送服务注册、并将获取的华为推送 Token 上报给融云服务端。

在 SDK init 之前,调用下面代码,初始化 RongPushPlugin 模块。

RongPushPlugin.init(getContext());
              
已复制
1

如果找不到 RongPushPlugin 模块,请检查是否已经集成融云自建推送通道

混淆配置

请参见华为推送官方文档配置混淆脚本

处理推送通知的点击事件

  • 自定义推送通知点击事件:介绍如何实现 SDK 的默认跳转行为,以及如何自定义处理点击事件。详见自定义推送通知点击事件
  • 自定义推送通知样式:SDK 接收到其他第三方厂商的推送后,弹出的通知是系统通知,由手机系统底层直接弹出通知,所以不支持自定义。

角标未读数

融云不维护应用角标数量,融云客户端 SDK 不支持控制角标展示。如需了解与厂商推送通知相关的角标控制实现,可参考知识库文档推送角标

文档反馈
意见反馈

您的改进建议

意见反馈

问题类型

联系我们

提交工单

技术支持|集成使用|产品方案


商务咨询

7 x 24 小时

为您解答方案与报价问题

131 6185 6839

文档反馈