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