iOS集成融云即时通讯详细教程

相关集成方法也可以直接参考官方文档http://www.rongcloud.cn/docs/ios.html.下面是我集成过程中的一些详细步骤.

1.准备工作:到官网http://www.rongcloud.cn注册登录,创建自己的应用,获取应用的AppKey.
iOS集成融云即时通讯详细教程_第1张图片

2.集成SDK,建议使用CocoaPods省事

target 'ProjectName' do # 项目名称
pod 'RongCloudIM/IMLib'
pod 'RongCloudIM/IMKit'
end

3.初始化:AppDelegate.m

#import 
@interface AppDelegate ()<RCIMUserInfoDataSource>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 融云
    [[RCIM sharedRCIM] initWithAppKey:@"your AppKey"];
    // 正常开发token是从APP服务器获取的,测试时可以在官网的测试接口获取
    [[RCIM sharedRCIM] connectWithToken:token success:^(NSString *userId) {
        NSLog(@"登陆成功。当前登录的用户ID:%@", userId);
    } error:^(RCConnectErrorCode status) {
        NSLog(@"登陆的错误码为:%zd", status);
    } tokenIncorrect:^{
        //token过期或者不正确。
        //如果设置了token有效期并且token过期,请重新请求您的服务器获取新的token
        //如果没有设置token有效期却提示token错误,请检查您客户端和服务器的appkey是否匹配,还有检查您获取token的流程。
        NSLog(@"token错误");
    }];
    // 设置代理,代理方法要返回用户信息
    [[RCIM sharedRCIM] setUserInfoDataSource:self];
    return YES;
}

//RCIMUserInfoDataSource的代理方法
- (void)getUserInfoWithUserId:(NSString *)userId completion:(void (^)(RCUserInfo *))completion {
// 每次展示用户头像等信息都会调用,正常开发应该从app服务器获取,保存在本地
RCUserInfo *info = [[RCUserInfo alloc] initWithUserId:userId name:@"name" portrait:@"http://tx.haiqq.com/uploads/allimg/160417/1_041F15KK0L.jpg"];
    completion(info);
}

4.会话列表:IMKit中默认使用RCConversationListViewController,可以直接使用或继承
ChatListViewController.h

#import 

@interface ChatListViewController : RCConversationListViewController

ChatListViewController.m

- (void)viewDidLoad {
    [super viewDidLoad];
    // 设置需要显示列表显示那些类型的会话
    [self setDisplayConversationTypes:@[@(ConversationType_PRIVATE),@(ConversationType_DISCUSSION),                               @(ConversationType_CHATROOM),                     @(ConversationType_GROUP),         @(ConversationType_APPSERVICE),        @(ConversationType_SYSTEM)]];
    // 设置需要将哪些类型的会话在会话列表中聚合显示
    [self setCollectionConversationType:@[@(ConversationType_DISCUSSION),
                                          @(ConversationType_GROUP)]];
}

// 点击回话时跳转到回话页面
- (void)onSelectedTableRow:(RCConversationModelType)conversationModelType conversationModel:(RCConversationModel *)model atIndexPath:(NSIndexPath *)indexPath {
// 会话页面:直接使用或者继承RCConversationViewController
    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];
}

5.使用官方API测试
iOS集成融云即时通讯详细教程_第2张图片


iOS集成融云即时通讯详细教程_第3张图片

6.目前为止,简单的单聊功能已经实现
iOS集成融云即时通讯详细教程_第4张图片

7.远程消息推送按照官方步骤即可http://www.rongcloud.cn/docs/ios_push.html.

你可能感兴趣的:(iOS)