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

来源:互联网 发布:jsp页面向java传值方式 编辑:程序博客网 时间:2024/05/29 04:04

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

1.准备工作:到官网http://www.rongcloud.cn注册登录,创建自己的应用,获取应用的AppKey.
获取APPKey

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

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

3.初始化:AppDelegate.m

#import <RongIMKit/RongIMKit.h>@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 <RongIMKit/RongIMKit.h>@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测试
官方API测试


发送信息

6.目前为止,简单的单聊功能已经实现
test

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