信息托管概述
提示
此 功能在 5.12.0 版本开始支持。
信息托管介绍
5.12.0 版本之前,IMKit 会话页面和会话列表只支持以 用户信息提供者代理方式 显示用户、群组信息。
5.12.0 版本及之后,IMKit 支持用户切换信息托管方式实现会话页面和会话列表用户、群组信息的的显示,并且新增了用户资料页、好友页、群组资料页等信息托管页面。
切换信息托管方式之后,不再通过信息提供者方式获取用户信息。会话页面和会话列表中用户信息优先展示消息体中携带用户信息,其次才是托管信息。
IMKit 中会话列表信息不进行实时更新,点击进入界面后获取最新信息。
信息托管开关
使用此功能前,您须在控制台开通信息托管服务。
IMKit SDK 默认使用用户信息托管方式实现会话页面和会话列表页面用户、群组信息的的显示。切换信息托管方式如下:
Java
RongUserInfoManager.getInstance().setDataSourceType(RongUserInfoManager.DataSourceType.INFO_MANAGEMENT);
切换信息托管方式后,会话列表和会话页面展示的用户或者群组信息从 lib 信息托管接口取,取到之后会缓存到内存中,之后会维护内存中的用户或者群组信息。只有好友关系或者订阅关系的用户才会实时更新会话列表和会话页。
内存中的信息在应用生命周期内有效。
如果更新用户或者群组信息,必须使用 RongCoreClient 中下面接口更新:
更新信息
切换信息托管方式后,更新信息不要使用 RongUserInfoManager 中 refresh 相关方法或者 lib 同名接口,必须使用下面方法更新:
更新当前用户的信息
Java
/**
* 更新用户资料
*
* <p>注意:建议先获取用户资料,在最新的用户资料基础之上更新用户资料
*
* @param profile 用户资料信息
* @param callback 操作完成后,操作结果通过此回调返回。
* @since 5.16.0
*/
public abstract void updateMyUserProfile(
UserProfile profile, IRongCoreCallback.ExamineOperationCallback callback);
更新好友信息
Java
/**
* 设置好友信息
*
* @param userId 好友的用户ID
* @param remark 好友备注名。最多为 64 个字符,不支持纯空格,不传或为空时清除备注名。
* @param extProfile 扩展信息。默认最多可设置 10 个扩展信息。(需要通过开发者后台或 API 设置后才能使用,否则返回设置失败)
* @param callback 操作完成后,结果通过此回调返回。
*/
public abstract void setFriendInfo(
final String userId,
final String remark,
final Map<String, String> extProfile,
final IRongCoreCallback.ExamineOperationCallback callback);