Commit 6e731e0a8796560559d1884e2f9b1063f5611772
1 parent
8c888279
no message
Showing
5 changed files
with
141 additions
and
198 deletions
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 | ... | ... |