1. 程式人生 > >融雲集成過程詳解

融雲集成過程詳解

融雲集成過程官方文件:

簡要步驟說明

  • 初始化 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];
}