腾讯云IMSDK

        最近项目中要植入即时通讯,我们所有技术部的小伙伴经过讨论,环信、阿里云、容联云、还有腾讯云。综合考虑使用腾讯云。因为腾讯云里面的登录注册是封装好的,我们未必会用那么多的功能,所以看文档还是很有必要的。

选择的腾讯文档,如果你的项目以后要植入直播,点播等功能选择IM iOS V2,如果只是单纯的聊天功能可以选择IM iOS V2或IM iOS V3,这个要看项目的实际需求了。

下面记录一下腾讯云的登录集成方法。

一、加入腾讯云的SDK

腾讯云IMSDK_第1张图片


二、加入需要的框架

腾讯云IMSDK_第2张图片


三、实现登录功能

主要代码:

#import 

//腾讯云测试appid

#define kTLSAppid       @"1400001533"
#define kSdkAppId       @"1400001533"
#define kSdkAccountType @"792"

加入代理监听状态
@interface LoginController ()

我们先初始化

 [[TIMManager sharedInstance]initSdk:1400001533 accountType:@"792"]; //初始化
    [[TIMManager sharedInstance]log:TIM_LOG_DEBUG tag:@"insdk" msg:@"hello"]; //打印日志
   //代理
    [[TIMManager sharedInstance]setUserStatusListener:self];
    
#pragma mark -登录
- (void)loginAction{
    
    TIMLoginParam *param = [[TIMLoginParam alloc] init];
    param.appidAt3rd = kSdkAppId;
    param.sdkAppId = [kSdkAppId intValue];
    param.accountType = kSdkAccountType;
     param.identifier = @"suncuihua";//用户名
//这个长长的是签名
    param.userSig = @"eJx10EtLw0AUhuF9fkWYtehcTNIIXTglNLFpMW216GaYJpN0EJPpXEKr*N8tUTAbz-Z94IPz6fm*D7b55pqXZeday*xZCeDf*SCKMbj6y0rJinHLiK6GjG7h5VBAyEiJk5JaMF5boQeFgxhf2IjISrRW1vIXGNeWTh4cHxFTvbFh7-8hI5shLpNils0fUHfaLVJMTZ*023O6PxYZDHmYzynZ9SJP9zrJsqhZ43tJ0SYsoucjLbv1YvXYP73WH93qBTp0KCfQNEsV8MLckJmmzXQ6mrTy-ecxKMAYwxhOQuB9ed8LQVfn";
    
    [[TIMManager sharedInstance]login:param succ:^{
        
        ChatController *chat = [[ChatController alloc]init];
        
        [self.navigationController pushViewController:chat animated:YES];
        
//        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"温馨提示" message:@"登录成功" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
//
//        [alert show];
        
    } fail:^(int code, NSString *msg) {
       //特别注意这个code 6208   意思是其他终端登录帐号被踢,需重新登录
        if (code == 6208) {
            
            UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"温馨提示" message:@"其他终端登录帐号被踢,需重新登录" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
            
            [alert show];
            
        }
    }];
}

/**
 *  踢下线通知 在别的手机上登录了给我们发的通知  和code 6208是不一样的
 */
- (void)onForceOffline{
    
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"温馨提示" message:@"账户已被踢" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
    
    [alert show];
    
}

/**
 *  断线重连失败
 */
- (void)onReConnFailed:(int)code err:(NSString*)err{
    
}


/**
 *  用户登录的userSig过期(用户需要重新获取userSig后登录)
 */
- (void)onUserSigExpired{
    
}

退出登录

 [[TIMManager sharedInstance]logout:^{
        
        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"温馨提示" message:@"登出成功" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
        
        [alert show];
        
    } fail:^(int code, NSString *msg) {
        
    }];

好了,现在的整个登录流程就走完了。






你可能感兴趣的:(OC)