iOS 关于集成融云IM的一些常用方法
生活随笔
收集整理的這篇文章主要介紹了
iOS 关于集成融云IM的一些常用方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
容我磨嘰一下
即使我也知道看這篇文章的人是不會看的,但是我還是想說啊,融云你們把文檔好好寫一下啦,APP什么的作為demo真的很雞肋啊。
步入正題
這篇文章不是介紹集成融云的各種前期準備的(就是怎么注冊賬號啥的),這個官方的文檔說的還是很清楚的。官網: 集成融云的前期準備 不廢話了。
1.初始化并連接融云服務器
無論你的APP是需要融云的什么功能,初始化連接融云服務器是必須的
#import <RongIMKit/RongIMKit.h> [[RCIM sharedRCIM] initWithAppKey:@"Your appKey"]; 復制代碼這里說一下,我的token是服務器獲取的,然后根據這個融云會給你返回相應的userID。另外,連接服務器獲取最新token也是在你需要的地方寫就行了
//連接融云服務器 [[RCIM sharedRCIM] connectWithToken:@"your token" success:^(NSString *userId) {NSLog(@"登陸成功。當前登錄的用戶ID:%@", userId);//成為當前用戶信息的提供者:這個也是在你需要的地方寫,我這里只是做一個提醒RCUserInfo *infor = [[RCUserInfo alloc]initWithUserId:userId name:name portrait:icon];[RCIM sharedRCIM].userInfoDataSource = self;[RCIMClient sharedRCIMClient].currentUserInfo = infor;} error:^(RCConnectErrorCode status) {NSLog(@"登陸的錯誤碼為:%ld", (long)status);} tokenIncorrect:^{NSLog(@"token錯誤");}];復制代碼2.集成會話界面
這里我先集成會話界面的原因是,我的需求不是根據好友列表進行聊天,所以我先說集成對話界面再說對話列表。以單聊為例,以后補充群聊。
1)聊天界面繼承 RCConversationViewController
這個控制器是融云給你寫好的,繼承就會有最基本的界面以及聊天功能
//跳轉之前targetId以及conversationType是不可缺的,否則無法完成聊天,或者說可以聊天但是沒有歷史消息記錄 ChatViewController *messageVC= [[ChatViewController alloc]init];messageVC.targetId = @"";//就是你作為用戶唯一標示的IDmessageVC.conversationType = ConversationType_PRIVATE;//單聊[self.navigationController pushViewController:messageVC animated:YES]; 復制代碼#pragma mark - 設置當前登錄用戶的頭像昵稱[RCIM sharedRCIM].enableMessageAttachUserInfo = YES;RCUserInfo *_currentUserInfo = [[RCUserInfo alloc] initWithUserId:[[[NSUserDefaults standardUserDefaults] valueForKey:@"user"] objectForKey:@"uuid"] name:[[[NSUserDefaults standardUserDefaults] valueForKey:@"user"] objectForKey:@"nickname"] portrait:[[[NSUserDefaults standardUserDefaults] valueForKey:@"user"] objectForKey:@"image"]];[RCIM sharedRCIM].currentUserInfo = _currentUserInfo; 復制代碼2)聊天列表繼承 RCConversationListViewController
ChatListViewController *secondViewController = [[ChatListViewController alloc] init]; [self.navigationController pushViewController:messageVC animated:YES]; 復制代碼 //點擊列表跳轉,重寫RCConversationListViewController的onSelectedTableRow事件 - (void)onSelectedTableRow:(RCConversationModelType)conversationModelTypeconversationModel:(RCConversationModel *)modelatIndexPath:(NSIndexPath *)indexPath {ChatViewController *conversationVC = [[ChatViewController alloc]init];//聊天界面的聊天類型conversationVC.conversationType = model.conversationType;//需要打開和誰聊天的會話界面,和誰聊天其實是通過TargetId來聯系的。conversationVC.targetId = model.targetId;conversationVC.conversationTitle = model.conversationTitle;[self.navigationController pushViewController:conversationVC animated:YES];} 復制代碼3.通知回調問題
#pragma mark - 設置RCIMReceiveMessageDelegate代理 [[RCIM sharedRCIM] setReceiveMessageDelegate:self];#pragma mark - 融云前臺接收到消息 -(void)onRCIMReceiveMessage:(RCMessage *)message left:(int)left{//} 復制代碼4.頭像昵稱問題
#pragma mark - 此方法中要提供給融云用戶的信息,建議緩存到本地,然后該方法每次從您的緩存返回 - (void)getUserInfoWithUserId:(NSString *)userId completion:(void(^)(RCUserInfo* userInfo))completion { //該信息需要從本地或者網絡獲取RCUserInfo *user = [[RCUserInfo alloc]init];user.name = [dic[@"data"] objectForKey:@"nickname"];user.portraitUri = [dic[@"data"] objectForKey:@"image"];[[NSNotificationCenter defaultCenter] postNotificationName:@"RefrshChatList" object:nil];return completion(user); } 復制代碼轉載于:https://juejin.im/post/5a585de4f265da3e364131a1
總結
以上是生活随笔為你收集整理的iOS 关于集成融云IM的一些常用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js进阶 13-8 jquery如何实现
- 下一篇: [翻译]React组件模式