融云 IMKit SDK 5.X 升级说明

Posted 刘建伯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了融云 IMKit SDK 5.X 升级说明相关的知识,希望对你有一定的参考价值。

融云 IMKit SDK 5.X 升级说明

Tips

如果您应用依赖于 suport 包,可参考 androidX 迁移文档将依赖转换为 AndroidX 后,再集成 IMKit SDK 5.X版本。

1. 类路径调整

IMKit SDK 5.X 版本重构了 SDK 的架构,通过 MVVM 框架实现,导致很多类路径发生了更改,下表列出了 5.X 之前版本对外公开类的路径变更:

2.x 、4.x 版本路径5.x 版本路径
io.rong.imkit.fragment.ConversationListFragmentio.rong.imkit.conversationlist.ConversationListFragment
io.rong.imkit.fragment.ConversationFragmentio.rong.imkit.conversation.ConversationFragment
io.rong.imkit.RongExtensionio.rong.imkit.conversation.extension
io.rong.imkit.userInfoCache.RongUserInfoManagerio.rong.imkit.userinfo.RongUserInfoManager
io.rong.imkit.mention.RongMentionManagerio.rong.imkit.feature.mention.RongMentionManager
io.rong.imkit.manager.IUnReadMessageObserverio.rong.imkit.manager.UnReadMessageManager.IUnReadM

路径调整 Tips

参照上表,在 AndroidStudio 中 command+shift+R 全局搜索旧的类路径,替换为新路径。
如果深度定制化了 IMKit SDK,部分类路径的调整可能不在上述列表中,升级以后 AndroidStudio 会有红色报错。删除报错类里红色未识别的导入路径,鼠标停留到报错的地方,根据 AndroidStudio 的提示导入新路径即可。如果有多个地方使用了该路径,可以参考第一步里的方法,全局搜索并替换。

2. 集成方式变更

页面跳转时由原先的隐式调用方式更改为显示调用, 因此集成步骤有所简化和更改。您需要先移除旧版本 AndroidManifest.xml 文件中关于 IMKit SDK 的配置,参考官网文档重新集成。

3. 消息展示模板变更

列表页由 ListView 更改为效率更高的 RecycleView,因此自定义消息的展示模板需要对应调整。

将自定义消息的展示模板更改为继承 BaseMessageItemProvider<>, 并实现基类方法。
移除展示模板里原先的注解,原注解属性可在新模板构建类里通过调用基类成员 mConfig 的各个方法进行配置

4. 内部实现变更

资源名称变更。IMKit SDK 5.x 版本重新统一了资源名称的命名,如果您自定义了部分资源文件,可参考官网自定义文档,重新替换对应名称的资源。

移除了 EventBus 。IMKit 5.x 版本不再依赖于 EventBus 进行事件分发,更改为通过观察者模式实现。如果您应用里使用了旧版本 SDK 里的 EventBus, 升级后需要您从应用层自己引入依赖。

移除 RongContext 类。如果您应用里有调用 RongContext 作为上下文使用的地方,请更改为调用您自己的应用上下文。

由于更改为 MVVM 框架,原 fragment 里很多业务相关接口被移除,您可参考官网 5.x 版本文档重新进行页面自定义。

以上是关于融云 IMKit SDK 5.X 升级说明的主要内容,如果未能解决你的问题,请参考以下文章

融云 IMKit 开源了

使用融云SDK遇到的一些问题

iOS - 语音云通讯

融云 IMKit 音频录制参数

融云IMKit 动态删除或添加plugin 的实现

在融云 IMkit 会话界面基础上添加消息已读未读