美文网首页
集成腾讯云IM

集成腾讯云IM

作者: 16哥哥 | 来源:发表于2017-08-03 11:46 被阅读410次

    1.下载腾讯云demo,他的demo里面需要的库都在framework里面:(按照文档,把所需要的库都添加,该设置的地方设置好就可以了)

    2.开始真正的工作,我就拿3.0版本举例子:

    (1)在.h文件中导入头文件:(一般是在AppDelegate的.h文件)

    (2)登陆功能:

    工作的第一步,先设置SDK相关的信息:

    TIMSdkConfig *fig = [TIMSdkConfig new];

    fig.sdkAppId = APPID;

    fig.accountType = @"Type";

    TIMManager * manager = [TIMManager sharedInstance];

    [manager initSdk:fig];

    登陆的时候你先需要设置登录信息:

    TIMLoginParam * login_param = [[TIMLoginParam alloc ]init];

    login_param.identifier = @"账号";

    login_param.userSig = @"密码";

    login_param.appidAt3rd = @“APPID";

    然后调用登陆的方法:

    [manager login: login_param succ:^(){

    NSLog(@"Login Succ");

    } fail:^(int code, NSString * err) {

    NSLog(@"Login Failed: %d->%@", code, err);

    }];

    这就可以实现登陆效果了,如果出现了sig无效的错误,是因为你的账号并不是走后台创建的.

    然后就是退出登录的功能,直接调用提供的方法就可以了:

    [[TIMManager sharedInstance] logout:^() {

    NSLog(@"logout succ");

    } fail:^(int code, NSString * err) {

    NSLog(@"logout fail: code=%d err=%@", code, err);

    }];

    (3)接收新消息功能:

    这个功能需要咱们自己来做消息监听,这个功能需要在登陆之前注册好,在.h文件中创建一个类用来接收新消息:

    @interface TIMMessageListenerImpl : NSObject

    - (void)onNewMessage:(TIMMessage*) msg;

    @end

    然后在.m文件中,实现这个方法:

    @implementation TIMMessageListenerImpl

    - (void)onNewMessage:(NSArray*) msgs {

    NSLog(@"NewMessages: %@", msgs);

    }

    @end

    在登陆方法之前,将它进行注册:

    TIMMessageListenerImpl * impl = [[TIMMessageListenerImpl alloc] init];

    [[TIMManager sharedInstance] addMessageListener:impl];

    这样,当你收到新消息时,就会调用onNewMessage:这个方法了,在这个方法里面,对新消息进行处理,接下来就是对消息进行传递,一般可以考虑用代理将数据创递给控制器然后刷新并展示就可以了.

    (4)用户被踢下线功能:

    这个功能也是需要我们自己来监听,方法同(3):

    在.h文件中创建一个类专门监听用户状态:

    // 监听用户状态

    @interface TIMUserStatusListenerImpl : NSObject

    - (void)onForceOffline;

    - (void)onUserSigExpired;

    @end

    然后在.m文件实现这个方法:

    @implementation TIMUserStatusListenerImpl

    - (void)onForceOffline {

    NSLog(@"force offline");

    }

    - (void)onUserSigExpired {

    NSLog(@"userSig expired");

    }

    @end

    最重要的事不要忘记关联一下,否则监听会失败:

    TIMUserStatusListenerImpl * status = [[TIMUserStatusListenerImpl alloc] init];

    TIMUserConfig * cfg = [[TIMUserConfig alloc] init];

    cfg.userStatusListener = status;

    [manager setUserConfig:cfg];

    现在当被踢掉时,就会调用onForceOffline这个方法

    (5)消息发送功能(接收消息功能已经在第三步实现了)

    第一步就是要创建聊天:

    TIMConversation * c2c_conversation = [[TIMManager sharedInstance] getConversation:TIM_C2C receiver:@“用户identify"];

    第二补就是发送消息,消息分为很多种,不同种情况有不同的消息创建,现在就以文本消息为例子:

    TIMTextElem * text_elem = [[TIMTextElem alloc] init];

    [text_elem setText:@"this is a text message"];

    TIMMessage * msg = [[TIMMessage alloc] init];

    [msg addElem:text_elem];

    [c2c_conversation sendMessage:msg succ:^(){

    NSLog(@"SendMsg Succ");

    }fail:^(int code, NSString * err) {

    NSLog(@"SendMsg Failed:%d->%@", code, err);

    }];

    这就实现了发送消息的功能,这些代码可以写到相应的按钮点击事件中,实现自定义发送消息功能.

    相关文章

      网友评论

          本文标题:集成腾讯云IM

          本文链接:https://www.haomeiwen.com/subject/jtxplxtx.html