Commit 6e731e0a8796560559d1884e2f9b1063f5611772

Authored by zhangxiaowen
1 parent 8c888279

no message

CNLiveLoginModule/Classes/Controller/CNLiveLoginController.m
... ... @@ -14,11 +14,13 @@
14 14  
15 15 #import "CNLiveUserAgreementManager.h"
16 16 #import "CNLiveCategory.h"
  17 +#import "CNUserInfoManager.h"
17 18  
18 19 #import "CNLiveLoginView.h"
19 20 #import "CNLiveThreeLoginView.h"
20 21 #import "CNLiveBindingTelController.h"//绑定手机号
21 22 #import "CNLiveCompleteInfoController.h"//修改昵称
  23 +#import "CNLiveLoginRequest.h"
22 24  
23 25 @interface CNLiveLoginController()<CNLiveLoginViewDelegate, CNLiveThreeLoginViewDelegate>
24 26 @property (nonatomic, weak) CNLiveLoginView *loginView;
... ... @@ -29,6 +31,7 @@
29 31 @end
30 32  
31 33 @implementation CNLiveLoginController
  34 +
32 35 #pragma mark - 生命周期
33 36 - (void)viewWillAppear:(BOOL)animated{
34 37 [super viewWillAppear:animated];
... ... @@ -97,6 +100,13 @@
97 100  
98 101 }else{
99 102 // 老用户 -> home
  103 + [[CNLiveLoginRequest manager] loginTIM:CNUserShareModel.uid success:^{
  104 + // 进入tabbar
  105 +
  106 + } failed:^(int code, NSString * _Nonnull msg) {
  107 + // 错误逻辑
  108 +
  109 + }];
100 110  
101 111 }
102 112  
... ...
CNLiveLoginModule/Classes/Model/CNLiveLoginRequestModel.h renamed to CNLiveLoginModule/Classes/Model/CNLiveLoginRequest.h
1 1 //
2   -// CNLiveLoginRequestModel.h
  2 +// CNLiveLoginRequest.h
3 3 // CNLiveLoginModule
4 4 //
5 5 // Created by 153993236@qq.com on 11/12/2019.
... ... @@ -9,16 +9,17 @@
9 9 #import <Foundation/Foundation.h>
10 10  
11 11 NS_ASSUME_NONNULL_BEGIN
12   -typedef void (^TIMLoginSucc)(void);
13   -typedef void (^TIMFail)(int code, NSString * msg);
14 12  
15   -@interface CNLiveLoginRequestModel : NSObject
  13 +@interface CNLiveLoginRequest : NSObject
  14 +
16 15 + (instancetype)manager;
17 16  
18   -- (void)getTIMLoginToken:(NSString *)identifier success:(void (^)(NSString *))success failed:(void (^)(int, NSString *))failed;
  17 +- (void)getTIMLoginToken:(NSString *)identifier success:(void (^)(NSString * token))success failed:(void (^)(int code, NSString * msg))failed;
  18 +
19 19  
  20 +- (void)loginTIM:(NSString *)uid success:(void (^)(void))success failed:(void (^)(int code, NSString * msg))failed;
20 21  
21   -- (void)loginTIM:(NSString *)uid success:(TIMLoginSucc)success failed:(TIMFail)failed;
  22 +- (void)resumeLogin;
22 23  
23 24 @end
24 25  
... ...
CNLiveLoginModule/Classes/Model/CNLiveLoginRequestModel.m renamed to CNLiveLoginModule/Classes/Model/CNLiveLoginRequest.m
1 1 //
2   -// CNLiveLoginRequestModel.m
  2 +// CNLiveLoginRequest.m
3 3 // CNLiveLoginModule
4 4 //
5 5 // Created by 153993236@qq.com on 11/12/2019.
6 6 // Copyright (c) 2019 153993236@qq.com. All rights reserved.
7 7 //
8 8  
9   -#import "CNLiveLoginRequestModel.h"
  9 +#import "CNLiveLoginRequest.h"
10 10 #import <UIKit/UIKit.h>
11 11 #import "QMUIKit.h"
12 12  
13   -#import "CNUserInfoManager.h"
14 13 #import "CNLiveEnvironment.h"
15 14 #import <CNLiveRequestBastKit/CNLiveNetworking.h>
16 15 #import "TIMAdapter.h"
17 16 #import "CommonLibrary.h"
18 17  
19   -@interface CNLiveLoginRequestModel()
  18 +#import "NBSAppAgent.h"
  19 +#import "CNLiveBusinessTools.h"
  20 +
  21 +@interface CNLiveLoginRequest()
20 22 @property (nonatomic, strong) IMALoginParam *loginParam;
21 23  
22 24 @end
23 25  
24   -@implementation CNLiveLoginRequestModel
  26 +@implementation CNLiveLoginRequest
  27 +static const NSInteger timeValue = 1.5;
  28 +
25 29 #pragma mark - 单例
26 30 + (instancetype)manager {
27   - static CNLiveLoginRequestModel *_singleton = nil;
  31 + static CNLiveLoginRequest *_singleton = nil;
28 32 static dispatch_once_t onceToken;
29 33 dispatch_once(&onceToken, ^{
30   - //不能再使用alloc方法
31   - //因为已经重写了allocWithZone方法,所以这里要调用父类的分配空间的方法
32 34 _singleton = [[super allocWithZone:NULL] init];
33 35 BOOL isAutoLogin = [IMAPlatform isAutoLogin];
  36 +
  37 + if (isAutoLogin) {
  38 + _singleton.loginParam = [IMALoginParam loadFromLocal];
34 39  
35   - if (isAutoLogin) {
36   - _singleton.loginParam = [IMALoginParam loadFromLocal];
37   -
38   - } else {
39   - _singleton.loginParam = [[IMALoginParam alloc] init];
40   -
41   - }
  40 + } else {
  41 + _singleton.loginParam = [[IMALoginParam alloc] init];
  42 +
  43 + }
42 44 [IMAPlatform configWith:_singleton.loginParam.config];
43 45  
44 46 });
... ... @@ -48,24 +50,21 @@
48 50  
49 51 // 防止外部调用alloc 或者 new
50 52 + (instancetype)allocWithZone:(struct _NSZone *)zone {
51   - return [CNLiveLoginRequestModel manager];
52   -
  53 + return [CNLiveLoginRequest manager];
53 54 }
54 55  
55 56 // 防止外部调用copy
56 57 - (id)copyWithZone:(nullable NSZone *)zone {
57   - return [CNLiveLoginRequestModel manager];
58   -
  58 + return [CNLiveLoginRequest manager];
59 59 }
60 60  
61 61 // 防止外部调用mutableCopy
62 62 - (id)mutableCopyWithZone:(nullable NSZone *)zone {
63   - return [CNLiveLoginRequestModel manager];
64   -
  63 + return [CNLiveLoginRequest manager];
65 64 }
66 65  
67 66 //获取token
68   -- (void)getTIMLoginToken:(NSString *)identifier success:(void (^)(NSString *))success failed:(void (^)(int, NSString *))failed{
  67 +- (void)getTIMLoginToken:(NSString *)identifier success:(void (^)(NSString * token))success failed:(void (^)(int code, NSString * msg))failed{
69 68 NSDictionary *params = @{@"appId":AppId,
70 69 @"plat":@"i",
71 70 @"sdkAppId":SdkAppId,
... ... @@ -75,7 +74,7 @@
75 74 [CNLiveNetworking setAllowRequestDefaultArgument:YES];
76 75 [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodPOST URLString:TIM_GetTokenUrl Param:params CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) {
77 76 if (!error) {
78   - if (responseObject && ![responseObject isKindOfClass:[NSNull class]] && [responseObject isKindOfClass:[NSDictionary class]] && [[responseObject allKeys] containsObject:@"data"] && [[responseObject objectForKey:@"data"] isKindOfClass:[NSDictionary class]]) {
  77 + if (responseObject && [responseObject isKindOfClass:[NSDictionary class]] && [[responseObject allKeys] containsObject:@"data"] && [[responseObject objectForKey:@"data"] isKindOfClass:[NSDictionary class]]) {
79 78 NSNumber *code = responseObject[@"errorCode"];
80 79 if (code && code.intValue == 0) {
81 80 if (success) {
... ... @@ -90,72 +89,118 @@
90 89 }
91 90  
92 91 }else{
93   - if (failed) failed(31012,@"Token acquisition failure");
  92 + if (failed) failed(31012, @"获取token失败");
94 93 }
95 94 }];
96 95  
97 96 }
98 97  
99   -- (void)loginTIM:(NSString *)uid success:(TIMLoginSucc)success failed:(TIMFail)failed{
100   -
  98 +- (void)loginTIM:(NSString *)uid success:(void (^)(void))success failed:(void (^)(int code, NSString * msg))failed{
  99 + [QMUITips showLoading:@"正在连接服务器..." inView:[UIApplication sharedApplication].keyWindow];
  100 +
  101 + // 1.获取token
101 102 [self getTIMLoginToken:uid success:^(NSString * _Nonnull token) {
102   - self.loginParam.identifier = CNUserShareModel.uid;
  103 +
  104 + self.loginParam.identifier = uid;
103 105 self.loginParam.userSig = token;
104 106 self.loginParam.tokenTime = [[NSDate date] timeIntervalSince1970];
105 107  
  108 + // 2.登录im
106 109 [[IMAPlatform sharedInstance] login:self.loginParam succ:^{
107   -
108   -// [NBSAppAgent setUserIdentifier:[CNLiveBusinessTools getSidIdfv]];
109 110 [QMUITips hideAllToastInView:[UIApplication sharedApplication].keyWindow animated:YES];
110   - [QMUITips showSucceed:@"登录成功" inView:[UIApplication sharedApplication].keyWindow hideAfterDelay:1.5];
  111 +
111 112 [self.loginParam saveToLocal];
112   -// [[AppDelegate sharedAppDelegate] registNotification];
113   - [[IMAPlatform sharedInstance] configHost:self.loginParam];
114   - [IMAPlatform sharedInstance].didConnectSuccess = YES;
115   - //电商
116   - NSString *userID = CNUserShareModel.uid;
117   -// [[DSCnliveShopSDKManager sharedManager] loginUser:userID];
118   - //设置APP已活跃
119   - [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"is_Active_Application"];
120   - [[NSUserDefaults standardUserDefaults] synchronize];
121 113  
122 114 [[IMAPlatform sharedInstance].contactMgr asyncUpdateContact];
123 115 [[IMAPlatform sharedInstance].contactMgr saveGroupIdList:YES];
124 116 [[IMAPlatform sharedInstance] configHost:self.loginParam];
125 117 [IMAPlatform sharedInstance].didConnectSuccess = YES;
126   - //电商
127   -// NSString *userID = CNUserShareModel.uid;
128   -// [[DSCnliveShopSDKManager sharedManager] loginUser:userID];
  118 +
  119 + // 听云
  120 + [NBSAppAgent setUserIdentifier:[CNLiveBusinessTools getSidIdfv]];
  121 +
  122 + // 设置电商sdk
  123 +// [[DSCnliveShopSDKManager sharedManager] loginUser:uid];
  124 +
129 125 //设置APP已活跃
130 126 [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"is_Active_Application"];
131 127 [[NSUserDefaults standardUserDefaults] synchronize];
132 128  
  129 + [QMUITips showSucceed:@"登录成功" inView:[UIApplication sharedApplication].keyWindow hideAfterDelay:timeValue];
  130 + success?success():@"";
  131 +
  132 + // 3.im配置信息
133 133 [[IMAPlatform sharedInstance].host asyncSetAllowType:TIM_FRIEND_NEED_CONFIRM succ:^{
134 134 NSLog(@"asyncSetAllowType Suc");
135 135 [self.loginParam saveToLocal];
136 136  
137 137 } fail:^(int code, NSString *msg) {
138 138 NSLog(@"asyncSetAllowType failed : %@", msg);
  139 +
139 140 }];
140   - success?success():@"";
141 141  
142 142 } fail:^(int code, NSString *msg) {
143 143 NSLog(@"login failed : %@", msg);
144   - failed?failed(code, msg):@"";
145   -
  144 + [QMUITips hideAllToastInView:[UIApplication sharedApplication].keyWindow animated:YES];
146 145 if (code == 6208) {
147 146 //离线被踢下线重新登录
148   -// [weakSelf resumeLogin];
  147 + [self resumeLogin];
  148 + }
  149 + else{
  150 + [QMUITips showError:msg inView:[UIApplication sharedApplication].keyWindow hideAfterDelay:timeValue];
  151 + failed?failed(code, msg):@"";
149 152 }
150   - else
151   - [QMUITips showError:msg inView:[UIApplication sharedApplication].keyWindow hideAfterDelay:1.5];
152   - [QMUITips hideAllToastInView:[UIApplication sharedApplication].keyWindow animated:YES];
153 153 }];
  154 +
154 155 } failed:^(int code, NSString * _Nonnull msg) {
155 156 NSLog(@"token code:%d msg:%@", code, msg);
156 157 [QMUITips hideAllToastInView:[UIApplication sharedApplication].keyWindow animated:YES];
  158 + [QMUITips showError:msg inView:[UIApplication sharedApplication].keyWindow hideAfterDelay:timeValue];
157 159 failed?failed(code, msg):@"";
  160 +
158 161 }];
159 162  
160 163 }
  164 +
  165 +// 如果遇到离线被踢下线重新登录
  166 +- (void)resumeLogin {
  167 + __weak typeof(self)weakSelf = self;
  168 + [[IMAPlatform sharedInstance] login:self.loginParam succ:^{
  169 + [QMUITips hideAllToastInView:[UIApplication sharedApplication].keyWindow animated:YES];
  170 + [QMUITips showSucceed:@"登录成功" inView:[UIApplication sharedApplication].keyWindow hideAfterDelay:timeValue];
  171 + [self.loginParam saveToLocal];
  172 +
  173 + [[IMAPlatform sharedInstance] configHost:self.loginParam];
  174 + [IMAPlatform sharedInstance].didConnectSuccess = YES;
  175 +
  176 + [[IMAPlatform sharedInstance].host asyncSetAllowType:TIM_FRIEND_NEED_CONFIRM succ:^{
  177 + NSLog(@"asyncSetAllowType Suc");
  178 + [self.loginParam saveToLocal];
  179 +
  180 + } fail:^(int code, NSString *msg) {
  181 + NSLog(@"asyncSetAllowType failed : %@", msg);
  182 + }];
  183 +
  184 + } fail:^(int code, NSString *msg) {
  185 + NSLog(@"tokenCode login failed : %@", msg);
  186 + if (code == 6028) {
  187 + dispatch_async(dispatch_get_main_queue(), ^{
  188 + QMUIAlertAction *action = [QMUIAlertAction actionWithTitle:@"重试" style:QMUIAlertActionStyleDefault handler:^(__kindof QMUIAlertController *aAlertController, QMUIAlertAction *action) {
  189 + [weakSelf resumeLogin];
  190 + }];
  191 + QMUIAlertController *alertController = [QMUIAlertController alertControllerWithTitle:@"连接服务器失败,请点击重试" message:@"" preferredStyle:QMUIAlertControllerStyleActionSheet];
  192 + [alertController addAction:action];
  193 +
  194 + NSMutableDictionary *titleAttributs = [[NSMutableDictionary alloc] initWithDictionary:alertController.alertTitleAttributes];
  195 +
  196 + titleAttributs[NSForegroundColorAttributeName] = [UIColor colorWithRed:35/255.0 green:212/255.0 blue:30/255.0 alpha:1.0];
  197 +
  198 + action.buttonAttributes = titleAttributs;
  199 + [alertController showWithAnimated:YES];
  200 +
  201 + });
  202 + }
  203 + }];
  204 +}
  205 +
161 206 @end
... ...
CNLiveLoginModule/Classes/View/CNLiveCompleteInfoView.m
... ... @@ -23,11 +23,9 @@
23 23  
24 24 #import "TIMAdapter.h"
25 25 #import "CommonLibrary.h"
26   -#import "NBSAppAgent.h"
27   -#import "CNLiveBusinessTools.h"
28 26 #import "CNLiveCategory.h"
29 27  
30   -#import "CNLiveLoginRequestModel.h"
  28 +#import "CNLiveLoginRequest.h"
31 29  
32 30 @interface CNLiveCompleteInfoView()<UITextFieldDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate,TZImagePickerControllerDelegate,QMUIAlertControllerDelegate>{
33 31 UIImage *_image;
... ... @@ -173,8 +171,6 @@ static const NSInteger timeValue = 1.5;
173 171 if(!strongSelf) return ;
174 172 strongSelf->_image = image;
175 173 [strongSelf modifyIcon];
176   -// [strongSelf.head setImage:image forState:UIControlStateNormal];
177   -
178 174 dispatch_async(dispatch_get_main_queue(), ^{
179 175 [weakCameraController dismissViewControllerAnimated:YES completion:nil];
180 176 });
... ... @@ -201,7 +197,6 @@ static const NSInteger timeValue = 1.5;
201 197 if(!strongSelf) return ;
202 198 strongSelf->_image = [photos firstObject];
203 199 [strongSelf modifyIcon];
204   -// [strongSelf.head setImage:[photos firstObject] forState:UIControlStateNormal];
205 200 }];
206 201 [(UIViewController *)strongSelf.delegate presentViewController:picker animated:YES completion:nil];
207 202 }];
... ... @@ -287,8 +282,7 @@ static const NSInteger timeValue = 1.5;
287 282 [strongSelf.delegate loginSuccess:strongSelf result:result];
288 283 }
289 284  
290   - [QMUITips showLoading:@"正在连接服务器..." inView:strongSelf.superview];
291   - [strongSelf syncIM];
  285 + [strongSelf connectionIM];
292 286  
293 287 } failure:^(NSDictionary *errorDic) {
294 288 __strong typeof(weakSelf) strongSelf = weakSelf;
... ... @@ -301,41 +295,13 @@ static const NSInteger timeValue = 1.5;
301 295 }
302 296  
303 297 // 连接IM
304   -- (void)syncIM {
305   - [CNLiveLoginRequestModel getTIMLoginToken:CNUserShareModel.uid successBlock:^(NSString *token) {
306   - self.loginParam.identifier = CNUserShareModel.uid;
307   - self.loginParam.userSig = token;
308   - self.loginParam.tokenTime = [[NSDate date] timeIntervalSince1970];
309   -
310   - [[IMAPlatform sharedInstance] login:self.loginParam succ:^{
311   - [QMUITips hideAllToastInView:self.superview animated:YES];
312   - [NBSAppAgent setUserIdentifier:[CNLiveBusinessTools getSidIdfv]];
313   - [self.loginParam saveToLocal];
314   -// [[AppDelegate sharedAppDelegate] registNotification];
315   - [[IMAPlatform sharedInstance] configHost:self.loginParam];
316   -
317   -// [[AppDelegate sharedAppDelegate] enterMainUI];
318   -
319   - //游客浏览后登陆
320   -// [self showTouristsLoginTipsView];
321   -
322   - [[IMAPlatform sharedInstance].host asyncSetAllowType:TIM_FRIEND_NEED_CONFIRM succ:^{
323   - NSLog(@"asyncSetAllowType Suc");
324   - [self.loginParam saveToLocal];
325   - } fail:^(int code, NSString *msg) {
326   - NSLog(@"asyncSetAllowType failed : %@", msg);
327   - }];
328   -
329   - } fail:^(int code, NSString *msg) {
330   - NSLog(@"login failed : %@", msg);
331   - [QMUITips hideAllToastInView:self.superview animated:YES];
332   - [QMUITips showError:msg inView:self.superview hideAfterDelay:timeValue];
333   - }];
  298 +- (void)connectionIM {
  299 + [[CNLiveLoginRequest manager] loginTIM:CNUserShareModel.uid success:^{
  300 + // 进入tabbar
  301 +
  302 + } failed:^(int code, NSString * _Nonnull msg) {
  303 + // 错误逻辑
334 304  
335   - } failedBlock:^(int code, NSString *errorMsg) {
336   - NSLog(@"token code:%d error:%@", code, errorMsg);
337   - [QMUITips hideAllToastInView:self.superview animated:YES];
338   - [QMUITips showError:errorMsg inView:self.superview hideAfterDelay:timeValue];
339 305 }];
340 306  
341 307 }
... ...
CNLiveLoginModule/Classes/View/CNLiveLoginView.m
... ... @@ -19,7 +19,7 @@
19 19 #import "TIMAdapter.h"
20 20 #import "CommonLibrary.h"
21 21  
22   -#import "CNLiveLoginRequestModel.h"
  22 +#import "CNLiveLoginRequest.h"
23 23  
24 24 #import "CNLiveLoginCountryView.h"
25 25 #import "CNLiveLoginTextField.h"
... ... @@ -247,22 +247,24 @@ static const NSInteger timeValue = 1.5;
247 247 #pragma mark - CNLiveCountDownButton Delegate
248 248 // 倒计时按钮点击
249 249 - (void)countDownButtonDidClick:(CNLiveCountDownButton *)button {
  250 + [_account resignFirstResponder];
  251 + [_code resignFirstResponder];
250 252 //获取验证码
251 253 if ([_account.text isEqualToString:@""]) {
252   - [QMUITips showError:@"请输入手机号" inView:self.superview hideAfterDelay:timeValue];
  254 + [QMUITips showError:@"请输入手机号" inView:[UIApplication sharedApplication].keyWindow hideAfterDelay:timeValue];
253 255 return;
254 256 }
255 257 // 按钮点击后将enabled设置为NO
256 258 button.userInteractionEnabled = NO;
257 259  
258 260 __weak typeof(self) weakSelf = self;
259   - [QMUITips showLoadingInView:self.superview];
  261 + [QMUITips showLoadingInView:[UIApplication sharedApplication].keyWindow];
260 262 [CNLiveUserSystemCenter verificationCodeType:VerificationCodeTypeShortcutLogin mobile:_account.text countryCode:_countryCode success:^(id result) {
261 263 button.userInteractionEnabled = YES;
262 264 __strong typeof(weakSelf) strongSelf = weakSelf;
263 265 if(!strongSelf) return;
264   - [QMUITips hideAllToastInView:strongSelf.superview animated:YES];
265   - [QMUITips showSucceed:@"验证码已发送" inView:strongSelf.superview hideAfterDelay:timeValue];
  266 + [QMUITips hideAllToastInView:[UIApplication sharedApplication].keyWindow animated:YES];
  267 + [QMUITips showSucceed:@"验证码已发送" inView:[UIApplication sharedApplication].keyWindow hideAfterDelay:timeValue];
266 268 button.backgroundColor = [UIColor colorWithRed:222/255.0 green:222/255.0 blue:222/255.0 alpha:1.0];
267 269 button.frame = CGRectMake(self.frame.size.width-110, self.account.bottom+space+10, 110, rowHeight-10);
268 270 [button setImage:nil forState:UIControlStateNormal];
... ... @@ -273,11 +275,11 @@ static const NSInteger timeValue = 1.5;
273 275 button.userInteractionEnabled = YES;
274 276 __strong typeof(weakSelf) strongSelf = weakSelf;
275 277 if(!strongSelf) return;
276   - [QMUITips hideAllToastInView:strongSelf.superview animated:YES];
  278 + [QMUITips hideAllToastInView:[UIApplication sharedApplication].keyWindow animated:YES];
277 279 if ([errorDic[@"errorCode"] integerValue] == 408) {
278   - [QMUITips showError:@"请输入正确的手机号" inView:strongSelf.superview hideAfterDelay:timeValue];
  280 + [QMUITips showError:@"请输入正确的手机号" inView:[UIApplication sharedApplication].keyWindow hideAfterDelay:timeValue];
279 281 }else{
280   - [QMUITips showError:[errorDic objectForKey:@"errorMessage"] inView:strongSelf.superview hideAfterDelay:timeValue];
  282 + [QMUITips showError:[errorDic objectForKey:@"errorMessage"] inView:[UIApplication sharedApplication].keyWindow hideAfterDelay:timeValue];
281 283 }
282 284  
283 285 }];
... ... @@ -306,20 +308,22 @@ static const NSInteger timeValue = 1.5;
306 308  
307 309 #pragma mark - Action
308 310 - (void)loginDidClicked:(UIButton *)btn{
  311 + [_account resignFirstResponder];
  312 + [_code resignFirstResponder];
309 313 //登录
310 314 if ([_account.text isEqualToString:@""]) {
311   - [QMUITips showError:@"请输入手机号" inView:self.superview hideAfterDelay:timeValue];
  315 + [QMUITips showError:@"请输入手机号" inView:[UIApplication sharedApplication].keyWindow hideAfterDelay:timeValue];
312 316 return;
313 317 }
314 318 if ([_code.text isEqualToString:@""]) {
315   - [QMUITips showError:@"请输入验证码" inView:self.superview hideAfterDelay:timeValue];
  319 + [QMUITips showError:@"请输入验证码" inView:[UIApplication sharedApplication].keyWindow hideAfterDelay:timeValue];
316 320 return;
317 321 }
318 322 btn.userInteractionEnabled = NO;
319 323 // 隐藏键盘
320 324 [self.superview endEditing:YES];
321 325  
322   - [QMUITips showLoading:@"登录中" inView:self.superview];
  326 + [QMUITips showLoading:@"登录中" inView:[UIApplication sharedApplication].keyWindow];
323 327  
324 328 __weak typeof(self) weakSelf = self;
325 329 [CNLiveUserSystemCenter shortcutLoginWithUserName:_account.text countryCode:_countryCode verificationCode:_code.text frmId:@"apple" success:^(id result) {
... ... @@ -333,8 +337,8 @@ static const NSInteger timeValue = 1.5;
333 337 btn.userInteractionEnabled = YES;
334 338 __strong typeof(weakSelf) strongSelf = weakSelf;
335 339 if(!strongSelf) return;
336   - [QMUITips hideAllToastInView:strongSelf.superview animated:YES];
337   - [QMUITips showError:[errorDic objectForKey:@"errorMessage"] inView:strongSelf.superview hideAfterDelay:timeValue];
  340 + [QMUITips hideAllToastInView:[UIApplication sharedApplication].keyWindow animated:YES];
  341 + [QMUITips showError:[errorDic objectForKey:@"errorMessage"] inView:[UIApplication sharedApplication].keyWindow hideAfterDelay:timeValue];
338 342 }];
339 343 }
340 344  
... ... @@ -348,94 +352,11 @@ static const NSInteger timeValue = 1.5;
348 352 }
349 353 [CNUserInfoManager saveUserinfoDic:dic];
350 354  
351   -// // YES 新用户 NO 老用户
352   -// BOOL isNewUser = [dic[@"isNewUser"] intValue] != 0;
353   -// if (self.delegate && [self.delegate respondsToSelector:@selector(loginSuccess:isNewUser:result:)]) {
354   -// [self.delegate loginSuccess:self isNewUser:isNewUser result:result];
355   -// }
356   -
357   - [CNLiveLoginRequestModel getTIMLoginToken:CNUserShareModel.uid successBlock:^(NSString *token) {
358   -
359   - _loginParam.identifier = CNUserShareModel.uid;
360   - _loginParam.userSig = token;
361   - _loginParam.tokenTime = [[NSDate date] timeIntervalSince1970];
362   -
363   - [[IMAPlatform sharedInstance] login:_loginParam succ:^{
364   -
365   -// [NBSAppAgent setUserIdentifier:[CNLiveBusinessTools getSidIdfv]];
366   - [QMUITips hideAllToastInView:self.superview animated:YES];
367   - [QMUITips showSucceed:@"登录成功" inView:self.superview hideAfterDelay:1.5];
368   - [_loginParam saveToLocal];
369   -// [[AppDelegate sharedAppDelegate] registNotification];
370   - [[IMAPlatform sharedInstance] configHost:_loginParam];
371   - [IMAPlatform sharedInstance].didConnectSuccess = YES;
372   - //电商
373   - NSString *userID = CNUserShareModel.uid;
374   -// [[DSCnliveShopSDKManager sharedManager] loginUser:userID];
375   - //设置APP已活跃
376   - [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"is_Active_Application"];
377   - [[NSUserDefaults standardUserDefaults] synchronize];
378   -
379   -
380   -
381   - if ([result[@"data"][@"isNewUser"] intValue] == 0) {
382   - //老用户
383   -// [[AppDelegate sharedAppDelegate] enterMainUI];
384   -// [[AppDelegate sharedAppDelegate] registNotification];
385   - [[IMAPlatform sharedInstance].contactMgr asyncUpdateContact];
386   - [[IMAPlatform sharedInstance].contactMgr saveGroupIdList:YES];
387   - [[IMAPlatform sharedInstance] configHost:_loginParam];
388   - [IMAPlatform sharedInstance].didConnectSuccess = YES;
389   - //电商
390   - NSString *userID = CNUserShareModel.uid;
391   -// [[DSCnliveShopSDKManager sharedManager] loginUser:userID];
392   - //设置APP已活跃
393   - [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"is_Active_Application"];
394   - [[NSUserDefaults standardUserDefaults] synchronize];
395   -
396   - }
397   - else {
398   - //新用户
399   -// [OpenInstallSDK reportRegister];
400   -// CNLoginIUsernfoViewController *vc = [[CNLoginIUsernfoViewController alloc] init];
401   -// NSString *tel = _accountTextF.text;
402   -// if(_accountTextF.text.length == 11){
403   -// tel = [_accountTextF.text stringByReplacingCharactersInRange:NSMakeRange(3, 4) withString:@"XXXX"];
404   -// }
405   -// NSLog(@"tel:%@",tel);
406   -// vc.mobileStr = tel;
407   -// [self presentViewController:vc animated:NO completion:NULL];
408   - }
409   -// [[NSNotificationCenter defaultCenter] postNotificationName:kCNLive_LoginSuccess object:nil];
410   -
411   -// [CNDSShopActionViewModel networkParamAction];
412   -
413   - [[IMAPlatform sharedInstance].host asyncSetAllowType:TIM_FRIEND_NEED_CONFIRM succ:^{
414   - NSLog(@"asyncSetAllowType Suc");
415   - [_loginParam saveToLocal];
416   -
417   - } fail:^(int code, NSString *msg) {
418   - NSLog(@"asyncSetAllowType failed : %@", msg);
419   - }];
420   - // [self dismissViewControllerAnimated:YES completion:nil];
421   -
422   - } fail:^(int code, NSString *msg) {
423   - NSLog(@"login failed : %@", msg);
424   - if (code == 6208) {
425   - //离线被踢下线重新登录
426   -// [weakSelf resumeLogin];
427   - }
428   - else
429   - [QMUITips showError:msg inView:self.superview hideAfterDelay:1.5];
430   - [QMUITips hideAllToastInView:self.superview animated:YES];
431   - }];
432   -
433   - } failedBlock:^(int code, NSString *errorMsg) {
434   - NSLog(@"token code:%d error:%@", code, errorMsg);
435   - [QMUITips hideAllToastInView:self.superview animated:YES];
436   -
437   - }];
438   -
  355 + // YES 新用户 NO 老用户
  356 + BOOL isNewUser = [dic[@"isNewUser"] intValue] != 0;
  357 + if (self.delegate && [self.delegate respondsToSelector:@selector(loginSuccess:isNewUser:result:)]) {
  358 + [self.delegate loginSuccess:self isNewUser:isNewUser result:result];
  359 + }
439 360 }
440 361  
441 362 @end
... ...