跳到主要内容

集成小米推送

按照本指南集成小米 Mi Push 国内版或海外版,让融云 SDK 支持小米推送。

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

提示

IMLib SDK 从 5.6.8 开始支持小米国际推送服务。

在控制台配置小米推送

如果想通过小米推送通道从融云服务端接收推送通知,您需要在控制台上提供您的小米推送应用的详细信息。

  1. 前往小米开放平台,选择您当前的项目所对应的小米应用,点击应用信息,并记录下应用的 AppIDAppKeyAppSecret

    提示

    如果没有小米开发者账号,或尚未创建应用,参考小米推送文档:

    (width=600)

    (height=400)

    其中 AppSecret 是小米推送服务器端的身份标识,在使用小米推送服务端 SDK 向客户端发送消息时使用,需要在控制台的小米推送配置中提供给融云。AppId 和 AppKey 是小米推送客户端的身份标识,后续在启用小米推送服务时需要提供给融云 SDK,用于初始化小米推送客户端 SDK。

  2. 打开控制台,前往在应用标识页面。点击设置推送,找到 Android > 小米推送,填入上一步获取的 AppSecret

    (height=400)

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

  4. 选择推送通道类型。小米推送的消息类型,分为普通消息和通知消息,查看小米推送消息限制明文档

    • 普通消息,融云默认使用的小米推送通道,有限制。
    • 通知消息,无限制。需要填写小米后台申请的 channelId。
  5. 保存设置。所有设置 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 文件 manifestPlaceholdersXIAOMI_APP_IDXIAOMI_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_IDXIAOMI_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_IDXIAOMI_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 接收到其他第三方厂商的推送后,弹出的通知是系统通知,由手机系统底层直接弹出通知,所以不支持自定义。