群组信息
要在 IMKit UI 上展示群组的头像(非群成员的头像)、群名称等,需要应用层(App)主动向 IMKit SDK 提供群组信息(Group)。
IMKit 使用 RongUserInfoManager 类统一管理以下数据。App 需要使用 RongUserInfoManager
向 IMKit 提供数据,用于在 UI 上展示。
- 用户信息:包含昵称、头像
- 群组信息:包含群组名称、群组头像
- 群成员用户信息:仅支持群用户昵称
提示
用户信息、群组信息、群成员用户信息必须由应用开发者主动从 App 服务端获取,并提供给 SDK。融云不提供 App 用户与群组信息托管服务。融云服务端的用户昵称及头像仅用于推送服务。
本文仅描述了应用层(App)如何为 IMKit SDK 提供群组信息(Group),以实现在 IMKit UI 上展示群组的头像(非群成员的头像)、群名称等功能。
Java
Group group = new Group(groupId, groupName, groupPortrait);
// 5.3.0 及之后,新增 String 类型的 extra 字段
Group group = new Group(groupId, groupName, groupPortrait, extra);
刷新群组信息
如果 App 本地持有群组信息数据,可直接刷新本地缓存和数据库中存储的群组信息(群组名称与群组头像)。刷新后,IMKit UI 会展示最新的群组信息 Group。
刷新群组信息必须在 IMKit 已成功建立 IM 连接后操作,否则无法刷新本地数据。可能适用场景如下:
- App 首次启动,并成功建立 IM 连接以后,可以将自身业务所需的用户信息批量提供给 SDK,由 SDK 写入缓存与本地数据库,供后续使用。
- 在 IM 建立连接后,如果群组名称、头像等信息变动,由 App 服务端通知客户端(例如使用消息),客户端调用接口刷新群组信息。
Java
Group group = new Group(groupId, groupName, groupPortrait);
RongUserInfoManager.getInstance().refreshGroupInfoCache(group);
如果 App 本地不持有数据,推荐在 IMKit 需要展示数据时动态提供群组信息。