鸿蒙 IMKit 架构
IMKit 分为如下核心服务
ConnectionService
: 连接服务。 IMKit 的连接服务功能单薄,主要是做 IM 连接状态的监听,方便 UI 做连接状态的展示。实际的 IM 连接,由 IMLib 负责
MessageService
: 消息服务。IMKit 的消息服务主要用于 UI 页面,里面调用的各种方法会触发页面的各种监听方法。IMLib 的消息相关方法并不会触发页面的各种监听
UserDataService
:用户服务。和 iOS Android 用户信息提供者相同的能力,用于从 App 获取用户信息刷新会话列表,聊天页面的用户头像、名称等
ConversationService
:会话服务。主要处理聊天页面相关。
- 会话配置
- 自定义消息与 provider 绑定
- 消息长按事件增加
- 各种聊天页面的事件监听
- 输入框 + 号扩展栏插件
- 会话的部分接口(如置顶、免打扰等)
- 聊天页面 UI
ConversationListService
:会话列表服务。主要处理会话列表页面相关。
- 会话列表 provider 替换、移除
- 会话列表的事件监听
- 会话列表长按事件增加
- 会话列表页面 UI