我用的ImSDK3.x,集成还是很简单的cocoapod或者直接将相应framework拖到工程里边,然后就是初始化相关->登录->监听消息等等
遇到的坑呢就是sdk初始化成功,用户初始化成功,登录莫名返回6013
官方文档给出的解释就是
6013 SDK 未初始化或者用户未登录成功,请先登录,成功回调之后重试
看到这句话是不是很*疼!
下面就是我的具体代码
初始化
TIMSdkConfig * config = [[TIMSdkConfig alloc] init];
config.sdkAppId =9998889;
config.accountType = @"00000";
config.disableCrashReport=YES;
//config.connListener=self;
int initResult= [[TIMManager sharedInstance] initSdk:config];
初始化返回0意味着初始化成功
然后初始化TIMUserConfig
TIMUserConfig * userConfig = [[TIMUserConfig alloc] init];
[[TIMManager sharedInstance] setUserConfig:userConfig];
返回0,也初始化成功
然后调用登录接口
TIMLoginParam *loginParam=[[TIMLoginParam alloc]init];
loginParam.identifier=@"xcxxczc8zxc9zxc";
loginParam.userSig=@"masdncbjzxn*aszxmnxmcz-_asdcscmzx ";
loginParam.appidAt3rd=@"9998889";
NSLog(@"aa");
[[TIMManager sharedInstance] login: loginParam succ:^(){
NSLog(@"Login Succ");
} fail:^(int code, NSString * err) {
NSLog(@"Login Failed: %d->%@", code, err);
}];
却返回错误代码
Login Failed: 6013->SDK not init(sdk 初始化失败或用户未登录)
一脸懵逼,腾讯文档完全没有提到这种情况,而且还收到文档的误导
就看了上图的文档所有没有实现网络监听回调,然而问题就出在这里。
查文档没有任何过多的解释,搜索关于云通信得问题少的可怜,不知道是用的少还是怎么!经过半天的摸索,都要放弃了,期间还联系腾讯技术部门,然而并没有得到回音!最后再将要放弃的时候,灵光一闪是不是在登录的时候初始化还未完成回着网络有问题。然后就把上边截图的网络回调添加上,
/**
* 网络连接成功
*/
- (void)onConnSucc{
NSLog(@"Connect Succ");
if ([[TIMManager sharedInstance] getLoginStatus]==1) {
NSLog(@"已登录");
}else if([[TIMManager sharedInstance] getLoginStatus]==2){
NSLog(@"登录中");
}else{
NSLog(@"未登录");
[self login];
}
// [self login];
}
断点,果然在调用登录时候,网络还没有连接成功。
然后就根据这个方法搜索云通信demo,看看(前边难道没有看demo?看了,demo实在不敢恭维,太乱了),demo上得登录是在初始化sdk后延迟了几毫米秒登录的吧!不知道demo其他地方还有什么处理,这样我感觉是有问题的,我舅按demo的方法实验了一下,发现再高延时网络下一样登录失败!
所以延迟登录也放弃了;
至此此坑已脱!
记录希望遇到此问题的小伙伴不再走弯路!