集成小米推送
按照本指南集成小米 Mi Push 国内版或海外版,让融云 SDK 支持小米推送。
在集成第三方推送前,请确保已在控制台配置 Android 应用 ID。详见推送集成概述。
IMLib SDK 从 5.6.8 开始支持小米国际推送服务。
在控制台配置小米推送
如果想通过小米推送通道从融云服务端接收推送通知,您需要在控制台上提供您的小米推送应用的详细信息。
-
前往小米开放平台,选择您当前的项目所对应的小米应用,点击应用信息,并记录下应用的 AppID、AppKey、AppSecret。
提示如果没有小米开发者账号,或尚未创建应用,参考小米推送文档:
- 中国大陆地区 - 推送服务启用指南
- 海外版 - Push Service Activation Guide 。目前,小米在印度孟买、德国法兰克福、俄罗斯莫斯科和新加坡设有数据中心,请选择合适的地域创建应用。
其中 AppSecret 是小米推送服务器端的身份标识,在使用小米推送服务端 SDK 向客户端发送消息时使用,需要在控制台的小米推送配置中提供给融云。AppId 和 AppKey 是小米推送客户端的身份标识,后续在启用小米推送服务时需要提供给融云 SDK,用于初始化小米推送客户端 SDK。
-
打开控制台,前往在应用标识页面。点击设置推送,找到 Android > 小米推送,填入上一步获取的 AppSecret。
-
(可选)配置小米推送通知标题。设置默认的推送通知标题。一般情况下客户端发送消息转 Push 时不使用此标题设置。在调用融云服务端 API
/push.json
、/push/user.json
、/push/custom.json
接口推送通知时,如未传入通知标题,则使用该处设置的标题。从服务端发消息时,如果发送用户 ID 在融云服务端没有用户名,也会使用此 “推送通知标题”。 -
选择推送通道类型。小米推送的消息类型,分为普通消息和通知消息,查看小米推送消息限制明文档。
- 普通消息,融云默认使用的小米推送通道,有限制。
- 通知消息,无限制。需要填写小米后台申请的 channelId。
-
保存设置。所有设置 30 分钟后生效。
您已完成需要控制台小米推送配置的全部内容。现在可以设置客户端集成。
配置客户端接收小米推送
重要
建议通过
gradle.properties
配置小米的 App ID 与 App Key。如果希望在 App 的build.gradle
中直接写入配置,请务必额外添加转义符,示例如下:
XIAOMI_APP_ID: "\"1882303761517473625\""
XIAOMI_APP_KEY : "\"1451747338625\""
。
您可以通过以下任意一种方案集成小米推送:
-
方案一:通过
gradle.properties
配置小米的 App ID 与 App Key。 在build.gradle
文件manifestPlaceholders
下XIAOMI_APP_ID
、XIAOMI_APP_KEY
字段中引用gradle.properties
属性文件中配置。gradle.properties
属性文件配置示例:MI_PUSH_APPID="9882303761517473625"
MI_PUSH_APPKEY="9451747338625"
build.gradle
配置示例:
android {
defaultConfig {
manifestPlaceholders = [
// 小米相关应用参数
XIAOMI_APP_ID : "${MI_PUSH_APPID}",
XIAOMI_APP_KEY : "${MI_PUSH_APPKEY}",
]
}
// ...其他配置
}
-
方案二:在 App 的
build.gradle
中添加依赖。注意 如果希望在 App 的 build.gradle 中直接写入配置,请务必额外添加转义符,如下所示:
android {
defaultConfig {
manifestPlaceholders = [
// 小米相关应用参数
XIAOMI_APP_ID : "\"9882303761517473625\""
XIAOMI_APP_KEY : "\"9451747338625\"",
]
}
// ...其他配置
}根据小米推送服务的地域完成相应的配置:
-
中国大陆地区:集成适用于中国大陆地区的小米推送客户端,并配置小米的
XIAOMI_APP_ID
和XIAOMI_APP_KEY
。android {
defaultConfig {
//...
manifestPlaceholders = [
XIAOMI_APP_ID : "xxxxxxxx",
XIAOMI_APP_KEY: "xxxxxxxx"
]
}
}
dependencies {
// x.y.z 为当前 IM SDK 版本号
implementation 'cn.rongcloud.sdk.push:xiaomi:x.y.z'
} -
海外地区:小米在印度孟买、德国法兰克福、俄罗斯莫斯科和新加坡设有数据中心。如果您使用小米海外推送服务,必须集成适用于海外地区的小米推送客户端,并配置小米的
XIAOMI_APP_ID
和XIAOMI_APP_KEY
,和地域。android {
defaultConfig {
//...
manifestPlaceholders = [
XIAOMI_APP_ID : "xxxxxxxx",
XIAOMI_APP_KEY: "xxxxxxxx",
XIAOMI_APP_REGION : "" // Global, Europe, Russia, India
]
}
}
dependencies {
// x.y.z 为当前 IM SDK 版 本号
implementation 'cn.rongcloud.sdk.push:xiaomi_global:x.y.z'
}
-
启用小米推送服务
在 SDK init 之前,调用下面代码,初始化 RongPushPlugin
模块。
RongPushPlugin.init(getContext());
如果找不到 RongPushPlugin
模块,请检查是否已经集成融云自建推送通道。
混淆配置
如果您的应用使用了混淆,您可以使用下面的代码混淆配置:
-dontwarn com.xiaomi.mipush.sdk.**
-keep public class com.xiaomi.mipush.sdk.* {*; }
处理推送通知的点击事件
- 自定义推送通知点击事件:介绍如何实现 SDK 的默认跳转行为,以及如何自定义处理点击事件。详见自定义推送通知点击事件。
- 自定义推送通知样式:SDK 接收到其他第三方厂商的推送后,弹出的通知是系统通知,由手机系统底层直接弹出通知,所以不支持自定义。