IMKit 4.X 适配 5.X IMLib 方案
本文介绍如何在项目中保持 IMKit 4.X 版本的同时,升级并使用 5.X 版本的 IMLib(即时通讯能力库),从而实现 UI 组件与核心功能的版本兼容。
方案概述
通过 im_compat 兼容包,您可以在使用 IMKit 4.X UI 组件的同时,享受 5.X IMLib 的最新功能和性能优化。这种方案特别适合希望保持现有 UI 稳定性,但需要使用最新核心功能的项目。
依赖关系
im_kit:4.2.0 依赖了 im_compat:4.2.1 兼容包,该兼容包会自动引入 5.X 版本的 IMLib 核心能力库。
默认的依赖树结构如下:
─ im_kit:4.2.0
└─ im_compat:4.2.1
├─ im_libcore:5.7.10
├─ im_chatroom:5.7.10
├─ im_location:5.7.10
├─ im_discussion:5.7.10
├─ im_customservice:5.7.10
└─ im_publicservice:5.7.10
备注
兼容包默认依赖稳定版 5.7.5,您也可以根据项目需求自定义版本。
用户接入指南
1. 添加仓库和版本依赖
在模块的 build.gradle 文件中,添加 Maven Central 仓库和 im_kit 依赖。
gradle
repositories {
maven { url "https://maven.rongcloud.cn/repository/maven-releases/" }
}
dependencies {
implementation 'cn.rongcloud.sdk:im_kit:4.2.0'
implementation 'cn.rongcloud.sdk:im_compat:4.2.1'
}
2. 初始化配置
初始化方式与 IMKit 4.X 版本保持一致,无需额外配置:
Java
RongIM.init(this);
RongIM.connect(token, new RongIMClient.ConnectCallback() {
@Override
public void onSuccess(String userId) {
// 连接成功
}
@Override
public void onError(RongIMClient.ErrorCode errorCode) {
// 连接失败
}
@Override
public void onTokenIncorrect() {
// Token 错误
}
});
3. 适配接口变更
升级后,您需要适配部分 API 的变更,最主要是消息接收监听器的 onReceived 方法。
Java
RongIM.setOnReceiveMessageListener(new RongIMClient.OnReceiveMessageListener() {
// 此方法已废弃,不再回调
@Override
public boolean onReceived(Message message, int left) {
return false;
}
// 请替换为新的 onReceived 方法
@Override
public boolean onReceived(Message message, int left, boolean hasPackage, boolean offline) {
return false;
}
});