日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

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

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

容我磨嘰一下

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

步入正題

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

1.初始化并連接融云服務(wù)器

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

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

這里說一下,我的token是服務(wù)器獲取的,然后根據(jù)這個融云會給你返回相應(yīng)的userID。另外,連接服務(wù)器獲取最新token也是在你需要的地方寫就行了

//連接融云服務(wù)器 [[RCIM sharedRCIM] connectWithToken:@"your token" success:^(NSString *userId) {NSLog(@"登陸成功。當(dāng)前登錄的用戶ID:%@", userId);//成為當(dāng)前用戶信息的提供者:這個也是在你需要的地方寫,我這里只是做一個提醒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錯誤");}];復(fù)制代碼

2.集成會話界面

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

1)聊天界面繼承 RCConversationViewController

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

//跳轉(zhuǎn)之前targetId以及conversationType是不可缺的,否則無法完成聊天,或者說可以聊天但是沒有歷史消息記錄 ChatViewController *messageVC= [[ChatViewController alloc]init];messageVC.targetId = @"";//就是你作為用戶唯一標(biāo)示的IDmessageVC.conversationType = ConversationType_PRIVATE;//單聊[self.navigationController pushViewController:messageVC animated:YES]; 復(fù)制代碼#pragma mark - 設(shè)置當(dāng)前登錄用戶的頭像昵稱[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; 復(fù)制代碼

2)聊天列表繼承 RCConversationListViewController

ChatListViewController *secondViewController = [[ChatListViewController alloc] init]; [self.navigationController pushViewController:messageVC animated:YES]; 復(fù)制代碼 //點擊列表跳轉(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];} 復(fù)制代碼

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

#pragma mark - 設(shè)置RCIMReceiveMessageDelegate代理 [[RCIM sharedRCIM] setReceiveMessageDelegate:self];#pragma mark - 融云前臺接收到消息 -(void)onRCIMReceiveMessage:(RCMessage *)message left:(int)left{//} 復(fù)制代碼

4.頭像昵稱問題

#pragma mark - 此方法中要提供給融云用戶的信息,建議緩存到本地,然后該方法每次從您的緩存返回 - (void)getUserInfoWithUserId:(NSString *)userId completion:(void(^)(RCUserInfo* userInfo))completion { //該信息需要從本地或者網(wǎng)絡(luò)獲取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); } 復(fù)制代碼

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

總結(jié)

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

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