如何显示用户头像和名称?

实现用户信息提供者,可在 AppDelegate.m 中遵循协议 RCIMUserInfoDataSource,RCIMGroupInfoDataSource,

设置代理

[[RCIM sharedRCIM] setUserInfoDataSource:self];

[[RCIM sharedRCIM] setGroupInfoDataSource:self];

实现方法

- (void)getUserInfoWithUserId:(NSString *)userId completion:(void (^)(RCUserInfo *))completion;

群组信息提供者:

- (void)getGroupInfoWithGroupId:(NSString *)groupId completion:(void (^)(RCGroup *))completion;

方法调用说明:

这两个方法,由 RCIM 类创建单例进行实现,所以整个工程中只需要实现一次就可以。

当会话列表或者会话界面中对应的用户需要显示的时候,每一个用户都会触发这个方法,所以协议方法中的参数 UserID/groupID 就是对应这个需要显示的用户的 ID,这个 ID 是已知的,可以直接应用。进而,开发者能够通过这个已知的 UserID,获取到该 UserID 对应的保存在自己服务器或者之前自行创建数据库写入的用户信息,并实现完整回调。

值得注意的是,当用户第一次需要显示的时候,该方法会被触发,并自动对该用户进行了信息的缓存。在 App 存活的生命周期中,之后该用户需要显示的时候,便不会触发该方法,SDK 自动遍历缓存的数据。(从 2.6.0 开始 IMKit 可以缓存用户信息到数据库里,开发者可以开启 RCIM.h 里的  enablePersistentUserInfoCache )

用户/群组信息提供者的协议代理方法完整回调之后,能够保证 App 的本地通知功能,对应显示的用户信息完整正确。

如果,当用户信息更改的时候,需要对应实现 RCIM 类中的这两个方法进行更新。

/**

* 本地用户信息改变,调用此方法更新kit层用户缓存信息

* @param userInfo 要更新的用户实体

* @paramuserId  要更新的用户 Id

*/

- (void)refreshUserInfoCache:(RCUserInfo *)userInfo

withUserId:(NSString *)userId;

/**

* 本地群组信息改变,调用此方法更新kit层群组缓存信息

* @param groupInfo 要更新的群组实体

* @param groupId  要更新的群组 Id

*/

- (void)refreshGroupInfoCache:(RCGroup*)groupInfo

withGroupId:(NSString *)groupId;

清除用户信息缓存的接口:

/**

*  清除所有本地用户信息的缓存。

*/

- (void)clearUserInfoCache;

/**

*  清除所有本地群组信息的缓存。

*/

- (void)clearGroupInfoCache;

用户信息的相关接口已经提供,具体逻辑实现每个开发者都是各有己见,不再赘述。


转自融云

你可能感兴趣的:(如何显示用户头像和名称?)