融雲集成過程詳解
阿新 • • 發佈:2019-02-11
融雲集成過程官方文件:
簡要步驟說明
- 初始化 SDK
#import <RongIMKit/RongIMKit.h>
/** 融雲初始化 */
- (void)setupRongCloud {
[[RCIM sharedRCIM] initWithAppKey:RongCloudKey];
}
- 連線伺服器
#import <RongIMKit/RongIMKit.h>
/** 連線伺服器 */
- (void)connectToServerWithToken:(NSString *)token {
[[RCIM sharedRCIM] connectWithToken:token success:^(NSString *userId) {
NSLog(@"登入的使用者是%@" , userId);
// 代理提供使用者資訊
[RCIM sharedRCIM].userInfoDataSource = self;
// 代理當前使用者資訊
RCUserInfo *info = [[RCUserInfo alloc] init];
[RCIM sharedRCIM].currentUserInfo = info;
} error:^(RCConnectErrorCode status) {
NSLog(@"%ld", (long)status);
} tokenIncorrect:^{
NSLog(@"token錯誤" );
}];
}
- 提供使用者資訊
/** 代理提供使用者資訊 */
- (void)getUserInfoWithUserId:(NSString *)userId completion:(void (^)(RCUserInfo *))completion {
RCUserInfo *info = [[RCUserInfo alloc] init];
// 使用者的資訊根據userId到APP伺服器獲取
...
completion(info);
}
- 會話列表
#import <RongIMKit/RongIMKit.h>
// 建立ViewController繼承RCConversationListViewController
// 參考RCConversationListViewController,根據需求重寫方法
//重寫RCConversationListViewController的onSelectedTableRow事件
- (void)onSelectedTableRow:(RCConversationModelType)conversationModelType
conversationModel:(RCConversationModel *)model
atIndexPath:(NSIndexPath *)indexPath {
// 跳轉會話
RCConversationViewController *conversationVC = [[RCConversationViewController alloc]init];
conversationVC.conversationType = model.conversationType;
conversationVC.targetId = model.targetId;
conversationVC.title = model.conversationTitle;
conversationVC.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:conversationVC animated:YES];
}
遇到的問題,會話列表中的使用者頭像不顯示,進入會話再返回就顯示,或者滑動列表才顯示
解決辦法:目前我是在收到資訊和viewDidAppear重新整理列表資料
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// 重新整理tableView資料
[self.conversationListTableView reloadData];
}
// 接收到資訊
- (void)onRCIMReceiveMessage:(RCMessage *)message left:(int)left {
[[RCIMManager shareIntance] updateBadgeValue];
// 重新整理tableView資料
[self.conversationListTableView reloadData];
}