最近项目中要植入即时通讯,我们所有技术部的小伙伴经过讨论,环信、阿里云、容联云、还有腾讯云。综合考虑使用腾讯云。因为腾讯云里面的登录注册是封装好的,我们未必会用那么多的功能,所以看文档还是很有必要的。
选择的腾讯文档,如果你的项目以后要植入直播,点播等功能选择IM iOS V2,如果只是单纯的聊天功能可以选择IM iOS V2或IM iOS V3,这个要看项目的实际需求了。
下面记录一下腾讯云的登录集成方法。
一、加入腾讯云的SDK
二、加入需要的框架
三、实现登录功能
主要代码:
#import <ImSDK/ImSDK.h> //腾讯云测试appid #define kTLSAppid @"1400001533" #define kSdkAppId @"1400001533" #define kSdkAccountType @"792"加入代理监听状态
@interface LoginController ()<TIMUserStatusListener>
我们先初始化
[[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) { }];
好了,现在的整个登录流程就走完了。