用户信息
要在 IMKit UI 上展示用户头像、昵称等,需要应用层(App)主动向 IMKit SDK 提供用户信息。
IMKit 使用 UserDataService 类统一管理用户信息数据。App 需要使用 UserDataService 向 IMKit 提供用户数据,用于在 UI 上展示。SDK 会在需要使用的时候回调 UserDataService 的相关方法。
- 用户信息:包含昵称、头像
- 群组信息:包含群组名称、群组头像
- 群成员用户信息:仅支持群用户昵称
提示
用户信息、群组信息、群成员用户信息必须由应用您主动从 App 服务端获取,并提供给 IMKit SDK。融云鸿蒙 SDK 不提供 App 用户与群组信息托管服务。融云服务端的用户昵称及头像仅用于推送服务。
本文仅描述了应用层(App)如何使用 IMKit SDK 提供用户信息:
用户信息提供者
流程
用户信息、群组信息、群组成员信息流程完全一致,此处以用户信息为例
- IMKit 在收发消息时,会在会话列表和聊天页面展示消息内容,并展示对应的用户信息,此时 IMKit 检查内部是否缓存的有对应的用户信息
- IMKit 如果缓存有用户信息就正常展示
- IMKit 没有缓存的用户信息,就需要从 App 获取用户信息。IMKit 会触发
UserDataProvider.fetchUserInfo方法。 - App 没有缓存的情况下,从 APPServer 获取用户信息。
- APPServer 将用户信息返给 App,App 可以视情况将用户信息缓存。
- App 通过
UserDataProvider.fetchUserInfo将用户信息 return 给 IMKit - IMKit 获取用户信息,缓存起来,内部通过
UserDataListener.onUserInfoChanged来刷新消息 UI。