信息托管概述
提示
此功能在 5.12.0 版本开始支持。
信息托管介绍
5.12.0 版本之前,IMKit 会话页面和会话列表只支持以 用户信息提供者代理方式 显示用户、群组信息。
5.12.0 版本及之后,IMKit 支持用户切换信息托管方式实现会话页面和会话列表用户、群组信息的的显示,并且新增了用户资料页、好友 页、群组资料页等信息托管页面。
切换信息托管方式之后,不再通过信息提供者方式获取用户信息。会话页面和会话列表中用户信息优先展示消息体中携带用户信息,其次才是托管信息。
IMKit 中会话列表信息不进行实时更新,点击进入界面后获取最新信息
信息托管开关
使用此功能前,您须在控制台开通信息托管服务。
IMKit SDK 默认使用用户信息提供者代理方式实现会话页面和会话列表页面用户、群组信息的的显示。如果需要切换信息托管方式,需要手动配置:
Objective C
[RCIM sharedRCIM].currentDataSourceType = RCDataSourceTypeInfoManagement;
提示
- 请在初始化 IMKit SDK 后,连接 IM 之前切换用户信息提供方式。
- 切换信息托管方式后,会话列表和会话页面展示的用户或者群组信息从 IMLib 信息托管接口取,取到之后会缓存到内存中,之后会维护内存中的用户或者群组信息,内存中的信息在应用生命周期内有效。
- 如果更新用户或者群组信息,必须使用 RCIM 中下面接口更新。
- 内存中的用户信息主要用于 IMKit SDK 会话列表和会话页面内用户或者群组名称、备注、头像的展示,只保证这些基本信息的同步。其他信息建议直接使用 IMLib 层信息托管接口设置或者获取。
更新信息
切换信息托管方式后,更新信息请使用 RCIM 中相关用户信息托管的更新接口:
更新当前用户的信息
接口原型
Objective C
/// 修改自己的用户信息
///
/// - Parameter profile: 用户信息
/// - Parameter successBlock: 成功的回调
/// - Parameter errorBlock: 失败的回调
///
/// - Since: 5.16.0
- (void)updateMyUserProfile:(RCUserProfile *)profile
successBlock:(void (^)(void))successBlock
errorBlock:(nullable void (^)(RCErrorCode errorCode, NSArray<NSString *> * _Nullable errorKeys))errorBlock;
参数说明
RCUserProfile 属性介绍:
属性名 | 类型 | 描述 |
---|---|---|
name | NSString | 昵称,长度不超过 32 个字符。 |
portraitUri | NSString | 头像地址,长度不超过 128 个字符。 |
uniqueId | NSString | 用户应用号,支持大小写字母、数字,长度不超过 32 个字符。请注意 客户端 SDK 不支持设置此字段。 |
NSString | Email,长度不超过 128 个字符。 | |
birthday | NSString | 生日,长度不超过 32 个字符 |
gender | RCUserGender | 性别 |
location | NSString | 所在地,长度不超过 32 个字符。 |
role | NSUInteger | 角色,支持 0~100 以内数字。 |
level | NSUInteger | 级别,支持 0~100 以内数字。 |
userExtProfile | NSDictionary<NSString *, NSString *> | 自定义扩展信息,您最多可以设置 20 个用户信息(以 Key、Value 方式设置,扩展用户信息的 Key 需在开发者后台提前进行设置)
|
示例代码
Objective C
[[RCIM sharedRCIM] updateMyUserProfile:self.profle successBlock:^{
} errorBlock:^(RCErrorCode errorCode, NSArray<NSString *> * _Nullable errorKeys) {
}];