如何顯示用戶頭像和名稱?

實現用戶信息提供者,可在 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;

用戶信息的相關接口已經提供,具體邏輯實現每個開發者都是各有己見,不再贅述。


轉自融云

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容