日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS 关于集成融云IM的一些常用方法

發(fā)布時間:2024/4/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS 关于集成融云IM的一些常用方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

容我磨嘰一下

即使我也知道看這篇文章的人是不會看的,但是我還是想說啊,融云你們把文檔好好寫一下啦,APP什么的作為demo真的很雞肋啊。

步入正題

這篇文章不是介紹集成融云的各種前期準備的(就是怎么注冊賬號啥的),這個官方的文檔說的還是很清楚的。官網(wǎng): 集成融云的前期準備 不廢話了。

1.初始化并連接融云服務器

無論你的APP是需要融云的什么功能,初始化連接融云服務器是必須的

#import <RongIMKit/RongIMKit.h> [[RCIM sharedRCIM] initWithAppKey:@"Your appKey"]; 復制代碼

這里說一下,我的token是服務器獲取的,然后根據(jù)這個融云會給你返回相應的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.集成會話界面

這里我先集成會話界面的原因是,我的需求不是根據(jù)好友列表進行聊天,所以我先說集成對話界面再說對話列表。以單聊為例,以后補充群聊。

1)聊天界面繼承 RCConversationViewController

這個控制器是融云給你寫好的,繼承就會有最基本的界面以及聊天功能

//跳轉(zhuǎn)之前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]; 復制代碼 //點擊列表跳轉(zhuǎn),重寫RCConversationListViewController的onSelectedTableRow事件 - (void)onSelectedTableRow:(RCConversationModelType)conversationModelTypeconversationModel:(RCConversationModel *)modelatIndexPath:(NSIndexPath *)indexPath {ChatViewController *conversationVC = [[ChatViewController alloc]init];//聊天界面的聊天類型conversationVC.conversationType = model.conversationType;//需要打開和誰聊天的會話界面,和誰聊天其實是通過TargetId來聯(lián)系的。conversationVC.targetId = model.targetId;conversationVC.conversationTitle = model.conversationTitle;[self.navigationController pushViewController:conversationVC animated:YES];} 復制代碼

3.通知回調(diào)問題

#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 { //該信息需要從本地或者網(wǎng)絡獲取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); } 復制代碼

轉(zhuǎn)載于:https://juejin.im/post/5a585de4f265da3e364131a1

總結(jié)

以上是生活随笔為你收集整理的iOS 关于集成融云IM的一些常用方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。