實現(xiàn)用戶信息提供者秦效,可在 AppDelegate.m 中遵循協(xié)議 RCIMUserInfoDataSource,RCIMGroupInfoDataSource礁竞,
設(shè)置代理
[[RCIM sharedRCIM] setUserInfoDataSource:self];
[[RCIM sharedRCIM] setGroupInfoDataSource:self];
實現(xiàn)方法
- (void)getUserInfoWithUserId:(NSString *)userId completion:(void (^)(RCUserInfo *))completion铝条;
群組信息提供者:
- (void)getGroupInfoWithGroupId:(NSString *)groupId completion:(void (^)(RCGroup *))completion靖苇;
方法調(diào)用說明:
這兩個方法,由 RCIM 類創(chuàng)建單例進行實現(xiàn)班缰,所以整個工程中只需要實現(xiàn)一次就可以贤壁。
當會話列表或者會話界面中對應的用戶需要顯示的時候,每一個用戶都會觸發(fā)這個方法埠忘,所以協(xié)議方法中的參數(shù) UserID/groupID 就是對應這個需要顯示的用戶的 ID脾拆,這個 ID 是已知的,可以直接應用莹妒。進而名船,開發(fā)者能夠通過這個已知的 UserID,獲取到該 UserID 對應的保存在自己服務器或者之前自行創(chuàng)建數(shù)據(jù)庫寫入的用戶信息旨怠,并實現(xiàn)完整回調(diào)包帚。
值得注意的是,當用戶第一次需要顯示的時候运吓,該方法會被觸發(fā)渴邦,并自動對該用戶進行了信息的緩存。在 App 存活的生命周期中拘哨,之后該用戶需要顯示的時候谋梭,便不會觸發(fā)該方法,SDK 自動遍歷緩存的數(shù)據(jù)倦青。(從 2.6.0 開始 IMKit 可以緩存用戶信息到數(shù)據(jù)庫里瓮床,開發(fā)者可以開啟 RCIM.h 里的? enablePersistentUserInfoCache )
用戶/群組信息提供者的協(xié)議代理方法完整回調(diào)之后,能夠保證 App 的本地通知功能产镐,對應顯示的用戶信息完整正確隘庄。
如果,當用戶信息更改的時候癣亚,需要對應實現(xiàn) RCIM 類中的這兩個方法進行更新丑掺。
/**
* 本地用戶信息改變,調(diào)用此方法更新kit層用戶緩存信息
* @param userInfo 要更新的用戶實體
* @paramuserId? 要更新的用戶 Id
*/
- (void)refreshUserInfoCache:(RCUserInfo *)userInfo
withUserId:(NSString *)userId;
/**
* 本地群組信息改變述雾,調(diào)用此方法更新kit層群組緩存信息
* @param groupInfo 要更新的群組實體
* @param groupId? 要更新的群組 Id
*/
- (void)refreshGroupInfoCache:(RCGroup*)groupInfo
withGroupId:(NSString *)groupId;
清除用戶信息緩存的接口:
/**
*? 清除所有本地用戶信息的緩存街州。
*/
- (void)clearUserInfoCache;
/**
*? 清除所有本地群組信息的緩存兼丰。
*/
- (void)clearGroupInfoCache;
用戶信息的相關(guān)接口已經(jīng)提供,具體邏輯實現(xiàn)每個開發(fā)者都是各有己見唆缴,不再贅述鳍征。
轉(zhuǎn)自融云