一.首先看下動態(tài)圖:

1.gif
二.集成步驟
1.參考官方文檔 http://www.rongcloud.cn/docs/ios.html#base_function_discussion
注冊開發(fā)者賬號
創(chuàng)建應(yīng)用
注冊了開發(fā)者帳號之后,在進行開發(fā) App 之前,您需要前往融云開發(fā)者控制臺創(chuàng)建應(yīng)用。創(chuàng)建完應(yīng)用之后,在您的應(yīng)用中,會自動創(chuàng)建兩套環(huán)境,即:開發(fā)環(huán)境和生產(chǎn)環(huán)境WechatIMG45.jpeg
開發(fā)環(huán)境專門用于開發(fā)測試,生產(chǎn)環(huán)境專門用于您的應(yīng)用上線正式商用。兩套環(huán)境相互隔離,每個環(huán)境都有相應(yīng)的 App Key 和 App Secret。兩個環(huán)境消息不互通。
獲取 Token
在融云控制臺中荔枝FM(我的應(yīng)用)->API調(diào)試->獲取Token
WechatIMG46.jpeg
SDK集成
我是用cocoapods導(dǎo)入的
①cd + 路徑(定位到項目所在路徑)
②pod init (創(chuàng)建podfile文件)
③添加需要的第三方
④pod install(pod update)
導(dǎo)入成功后,就可以使用了!
屏幕快照 2018-01-30 上午11.46.49.png
初始化、連接服務(wù)器
在AppDelegate.m里
#import <RongIMKit/RongIMKit.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//初始化sdk
[[RCIM sharedRCIM] initWithAppKey:kSDKKey];
//連接服務(wù)器
[[RCIM sharedRCIM] connectWithToken:kToken1 success:^(NSString *userId) {
NSLog(@"登陸成功。當(dāng)前登錄的用戶ID:%@", userId);
[[NSUserDefaults standardUserDefaults]setObject:userId forKey:@"userId"];
[[NSUserDefaults standardUserDefaults] synchronize];
} error:^(RCConnectErrorCode status) {
NSLog(@"登陸的錯誤碼為:%ld", (long)status);
} tokenIncorrect:^{
//token過期或者不正確。
//如果設(shè)置了token有效期并且token過期,請重新請求您的服務(wù)器獲取新的token
//如果沒有設(shè)置token有效期卻提示token錯誤,請檢查您客戶端和服務(wù)器的appkey是否匹配,還有檢查您獲取token的流程。
NSLog(@"token錯誤");
}];
return YES;
}
會話界面
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSDictionary *dic = self.listArray[indexPath.row];
RCConversationType type = ConversationType_PRIVATE;
if (indexPath.row>4) {
type = ConversationType_DISCUSSION;
}
//新建一個聊天會話View Controller對象,建議這樣初始化
SingleChatVC *chat = [[SingleChatVC alloc] initWithConversationType:type targetId:dic[@"userId"]];
//設(shè)置會話的目標(biāo)會話ID。(單聊、客服、公眾服務(wù)會話為對方的ID,討論組、群聊、聊天室為會話的ID)
//設(shè)置聊天會話界面要顯示的標(biāo)題
chat.title = dic[@"name"];
//顯示聊天會話界面
[self.navigationController pushViewController:chat animated:YES];
}
//SingleChatVC class
@interface SingleChatVC : RCConversationViewController
消息界面
//.h
#import <UIKit/UIKit.h>
#import <RongIMKit/RongIMKit.h>
#import <RongIMLib/RongIMLib.h>
@interface NewsList : RCConversationListViewController
@end
.m
- (void)viewDidLoad {
///重寫顯示相關(guān)的接口,必須先調(diào)用super,否則會屏蔽SDK默認的處理
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
//設(shè)置需要顯示哪些類型的會話
[self setDisplayConversationTypes:@[@(ConversationType_PRIVATE),
@(ConversationType_DISCUSSION),
@(ConversationType_CHATROOM),
@(ConversationType_GROUP),
@(ConversationType_APPSERVICE),
@(ConversationType_SYSTEM)]];
// //設(shè)置需要將哪些類型的會話在會話列表中聚合顯示
[self setCollectionConversationType:@[@(ConversationType_DISCUSSION),
@(ConversationType_GROUP)]];
}
//重寫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 = @"聊天室";
conversationVC.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:conversationVC animated:YES];
}
遇到的問題
點擊鍵盤中的+ 號時,崩潰
屏幕快照
解決辦法是在info.plist文件里添加描述字段
屏幕快照




