Commit 7b159796e051c7450164f8721585024dcfc9ec55

Authored by 朱林
1 parent e2b7f56f

注册或登录成功后新增返回数据,新增第三方账号绑定接口,修改头像返回头像地址

CNLiveUserSystemDemo/CNLiveUserSystemDemo/Conreollers/LoginViewController.m
@@ -53,22 +53,18 @@ @@ -53,22 +53,18 @@
53 { 53 {
54 [SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeClear]; 54 [SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeClear];
55 [SVProgressHUD show]; 55 [SVProgressHUD show];
56 -  
57 - [CNLiveUserSystemCenter loginWithUserName:_idAndPwdView.idTF.text password:_idAndPwdView.pwdTF.text frmId:nil success:^(id result) { 56 +
  57 + [CNLiveUserSystemCenter loginWithUserName:@"941123686@qq.com" password:@"123456" frmId:nil success:^(id result) {
58 58
59 NSLog(@"登录 success------------%@",result); 59 NSLog(@"登录 success------------%@",result);
60 -  
61 - [Tools setUserLogin:YES];  
62 [SVProgressHUD showSuccessWithStatus:@"登录成功"]; 60 [SVProgressHUD showSuccessWithStatus:@"登录成功"];
63 [UserInfoSava saveUserinfoDic:result[@"data"]]; 61 [UserInfoSava saveUserinfoDic:result[@"data"]];
  62 + [Tools setUserLogin:YES];
64 [self.navigationController popViewControllerAnimated:YES]; 63 [self.navigationController popViewControllerAnimated:YES];
65 -  
66 -  
67 - } failure:^(NSError *error) {  
68 64
69 - [Tools toast:error.localizedDescription]; 65 + } failure:^(NSDictionary *errorDic) {
  66 + [Tools toast:[NSString stringWithFormat:@"errorCode : %@ \n errorMessage : %@", errorDic[@"errorCode"],errorDic[@"errorMessage"]]];
70 [SVProgressHUD dismiss]; 67 [SVProgressHUD dismiss];
71 -  
72 }]; 68 }];
73 } 69 }
74 70
CNLiveUserSystemDemo/CNLiveUserSystemDemo/Conreollers/ModifyUserInfoViewController.m
@@ -50,8 +50,8 @@ @@ -50,8 +50,8 @@
50 [SVProgressHUD showSuccessWithStatus:@"手机号修改成功"]; 50 [SVProgressHUD showSuccessWithStatus:@"手机号修改成功"];
51 [self.navigationController popViewControllerAnimated:YES]; 51 [self.navigationController popViewControllerAnimated:YES];
52 52
53 - } failure:^(NSError *error) {  
54 - [Tools toast:error.localizedDescription]; 53 + } failure:^(NSDictionary *errorDic) {
  54 + [Tools toast:[NSString stringWithFormat:@"errorCode : %@ \n errorMessage : %@", errorDic[@"errorCode"],errorDic[@"errorMessage"]]];
55 [SVProgressHUD dismiss]; 55 [SVProgressHUD dismiss];
56 }]; 56 }];
57 57
@@ -63,10 +63,9 @@ @@ -63,10 +63,9 @@
63 [SVProgressHUD showSuccessWithStatus:@"修改成功"]; 63 [SVProgressHUD showSuccessWithStatus:@"修改成功"];
64 [self.navigationController popViewControllerAnimated:YES]; 64 [self.navigationController popViewControllerAnimated:YES];
65 65
66 - } failure:^(NSError *error) {  
67 - [Tools toast:error.localizedDescription]; 66 + } failure:^(NSDictionary *errorDic) {
  67 + [Tools toast:[NSString stringWithFormat:@"errorCode : %@ \n errorMessage : %@", errorDic[@"errorCode"],errorDic[@"errorMessage"]]];
68 [SVProgressHUD dismiss]; 68 [SVProgressHUD dismiss];
69 -  
70 }]; 69 }];
71 } 70 }
72 } 71 }
@@ -79,8 +78,8 @@ @@ -79,8 +78,8 @@
79 78
80 [Tools toast:result[@"errorMessage"]]; 79 [Tools toast:result[@"errorMessage"]];
81 80
82 - } failure:^(NSError *error) {  
83 - [Tools toast:error.localizedDescription]; 81 + } failure:^(NSDictionary *errorDic) {
  82 + [Tools toast:[NSString stringWithFormat:@"errorCode : %@ \n errorMessage : %@", errorDic[@"errorCode"],errorDic[@"errorMessage"]]];
84 }]; 83 }];
85 } 84 }
86 85
CNLiveUserSystemDemo/CNLiveUserSystemDemo/Conreollers/RegisterViewController.m
@@ -49,8 +49,8 @@ @@ -49,8 +49,8 @@
49 49
50 [Tools toast:result[@"errorMessage"]]; 50 [Tools toast:result[@"errorMessage"]];
51 51
52 - } failure:^(NSError *error) {  
53 - [Tools toast:error.localizedDescription]; 52 + } failure:^(NSDictionary *errorDic) {
  53 + [Tools toast:[NSString stringWithFormat:@"errorCode : %@ \n errorMessage : %@", errorDic[@"errorCode"],errorDic[@"errorMessage"]]];
54 }]; 54 }];
55 55
56 } else if ([_type isEqualToString:@"quicklyLogin"]) { 56 } else if ([_type isEqualToString:@"quicklyLogin"]) {
@@ -59,9 +59,8 @@ @@ -59,9 +59,8 @@
59 59
60 [Tools toast:result[@"errorMessage"]]; 60 [Tools toast:result[@"errorMessage"]];
61 61
62 - } failure:^(NSError *error) {  
63 -  
64 - [Tools toast:error.localizedDescription]; 62 + } failure:^(NSDictionary *errorDic) {
  63 + [Tools toast:[NSString stringWithFormat:@"errorCode : %@ \n errorMessage : %@", errorDic[@"errorCode"],errorDic[@"errorMessage"]]];
65 }]; 64 }];
66 65
67 } else { 66 } else {
@@ -70,9 +69,8 @@ @@ -70,9 +69,8 @@
70 69
71 [Tools toast:result[@"errorMessage"]]; 70 [Tools toast:result[@"errorMessage"]];
72 71
73 - } failure:^(NSError *error) {  
74 -  
75 - [Tools toast:error.localizedDescription]; 72 + } failure:^(NSDictionary *errorDic) {
  73 + [Tools toast:[NSString stringWithFormat:@"errorCode : %@ \n errorMessage : %@", errorDic[@"errorCode"],errorDic[@"errorMessage"]]];
76 }]; 74 }];
77 } 75 }
78 } 76 }
@@ -92,11 +90,9 @@ @@ -92,11 +90,9 @@
92 [UserInfoSava saveUserinfoDic:result[@"data"]]; 90 [UserInfoSava saveUserinfoDic:result[@"data"]];
93 [self.navigationController popToRootViewControllerAnimated:YES]; 91 [self.navigationController popToRootViewControllerAnimated:YES];
94 92
95 - } failure:^(NSError *error) {  
96 -  
97 - [Tools toast:error.localizedDescription]; 93 + } failure:^(NSDictionary *errorDic) {
98 [SVProgressHUD dismiss]; 94 [SVProgressHUD dismiss];
99 - 95 + [Tools toast:[NSString stringWithFormat:@"errorCode : %@ \n errorMessage : %@", errorDic[@"errorCode"],errorDic[@"errorMessage"]]];
100 }]; 96 }];
101 97
102 } else if ([_type isEqualToString:@"quicklyLogin"]) { 98 } else if ([_type isEqualToString:@"quicklyLogin"]) {
@@ -108,11 +104,9 @@ @@ -108,11 +104,9 @@
108 [UserInfoSava saveUserinfoDic:result[@"data"]]; 104 [UserInfoSava saveUserinfoDic:result[@"data"]];
109 [self.navigationController popToRootViewControllerAnimated:YES]; 105 [self.navigationController popToRootViewControllerAnimated:YES];
110 106
111 - } failure:^(NSError *error) {  
112 -  
113 - [Tools toast:error.localizedDescription]; 107 + } failure:^(NSDictionary *errorDic) {
  108 + [Tools toast:[NSString stringWithFormat:@"errorCode : %@ \n errorMessage : %@", errorDic[@"errorCode"],errorDic[@"errorMessage"]]];
114 [SVProgressHUD dismiss]; 109 [SVProgressHUD dismiss];
115 -  
116 }]; 110 }];
117 111
118 } else { 112 } else {
@@ -121,10 +115,9 @@ @@ -121,10 +115,9 @@
121 [SVProgressHUD showSuccessWithStatus:@"密码修改成功"]; 115 [SVProgressHUD showSuccessWithStatus:@"密码修改成功"];
122 [self.navigationController popToRootViewControllerAnimated:YES]; 116 [self.navigationController popToRootViewControllerAnimated:YES];
123 117
124 - } failure:^(NSError *error) {  
125 - [Tools toast:error.localizedDescription]; 118 + } failure:^(NSDictionary *errorDic) {
  119 + [Tools toast:[NSString stringWithFormat:@"errorCode : %@ \n errorMessage : %@", errorDic[@"errorCode"],errorDic[@"errorMessage"]]];
126 [SVProgressHUD dismiss]; 120 [SVProgressHUD dismiss];
127 -  
128 }]; 121 }];
129 } 122 }
130 123
CNLiveUserSystemDemo/CNLiveUserSystemDemo/Conreollers/UserInfoViewController.m
@@ -193,8 +193,8 @@ @@ -193,8 +193,8 @@
193 NSLog(@"%@",result); 193 NSLog(@"%@",result);
194 [SVProgressHUD showSuccessWithStatus:@"修改成功"]; 194 [SVProgressHUD showSuccessWithStatus:@"修改成功"];
195 195
196 - } failure:^(NSError *error) {  
197 - [Tools toast:error.localizedDescription]; 196 + } failure:^(NSDictionary *errorDic) {
  197 + [Tools toast:[NSString stringWithFormat:@"errorCode : %@ \n errorMessage : %@", errorDic[@"errorCode"],errorDic[@"errorMessage"]]];
198 [SVProgressHUD dismiss]; 198 [SVProgressHUD dismiss];
199 }]; 199 }];
200 } 200 }
@@ -227,8 +227,8 @@ @@ -227,8 +227,8 @@
227 227
228 NSLog(@"%@",result); 228 NSLog(@"%@",result);
229 229
230 - } failure:^(NSError *error) {  
231 - [Tools toast:error.localizedDescription]; 230 + } failure:^(NSDictionary *errorDic) {
  231 + [Tools toast:[NSString stringWithFormat:@"errorCode : %@ \n errorMessage : %@", errorDic[@"errorCode"],errorDic[@"errorMessage"]]];
232 }]; 232 }];
233 233
234 } else { 234 } else {
CNLiveUserSystemDemo/CNLiveUserSystemDemo/Conreollers/ViewController.m
@@ -132,8 +132,8 @@ @@ -132,8 +132,8 @@
132 [SVProgressHUD showSuccessWithStatus:@"更新附加信息成功"]; 132 [SVProgressHUD showSuccessWithStatus:@"更新附加信息成功"];
133 [self.navigationController popViewControllerAnimated:YES]; 133 [self.navigationController popViewControllerAnimated:YES];
134 134
135 - } failure:^(NSError *error) {  
136 - [Tools toast:error.localizedDescription]; 135 + } failure:^(NSDictionary *errorDic) {
  136 + [Tools toast:[NSString stringWithFormat:@"errorCode : %@ \n errorMessage : %@", errorDic[@"errorCode"],errorDic[@"errorMessage"]]];
137 [SVProgressHUD dismiss]; 137 [SVProgressHUD dismiss];
138 }]; 138 }];
139 } 139 }
@@ -157,8 +157,8 @@ @@ -157,8 +157,8 @@
157 [_tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationFade]; 157 [_tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationFade];
158 [Tools toast:message]; 158 [Tools toast:message];
159 159
160 - } failure:^(NSError *error) {  
161 - [Tools toast:error.localizedDescription]; 160 + } failure:^(NSDictionary *errorDic) {
  161 + [Tools toast:[NSString stringWithFormat:@"errorCode : %@ \n errorMessage : %@", errorDic[@"errorCode"],errorDic[@"errorMessage"]]];
162 }]; 162 }];
163 } 163 }
164 164
@@ -167,8 +167,8 @@ @@ -167,8 +167,8 @@
167 [CNLiveUserSystemCenter feedbackWithContentId:@"11" message:@"fhsjhifkncznshfu" success:^(id result) { 167 [CNLiveUserSystemCenter feedbackWithContentId:@"11" message:@"fhsjhifkncznshfu" success:^(id result) {
168 [Tools toast:[NSString stringWithFormat:@"反馈--%@",result[@"errorMessage"]]]; 168 [Tools toast:[NSString stringWithFormat:@"反馈--%@",result[@"errorMessage"]]];
169 169
170 - } failure:^(NSError *error) {  
171 - [Tools toast:error.localizedDescription]; 170 + } failure:^(NSDictionary *errorDic) {
  171 + [Tools toast:[NSString stringWithFormat:@"errorCode : %@ \n errorMessage : %@", errorDic[@"errorCode"],errorDic[@"errorMessage"]]];
172 }]; 172 }];
173 } 173 }
174 } 174 }
CNLiveUserSystemDemo/CNLiveUserSystemDemo/Tools/CNLiveThirdLoginManager.h
@@ -14,10 +14,10 @@ @@ -14,10 +14,10 @@
14 14
15 - (BOOL)handleOpenURL:(NSURL *)url; 15 - (BOOL)handleOpenURL:(NSURL *)url;
16 16
17 -- (void)qqLogin; 17 +- (void)qqLoginIsBindingThirdParty:(BOOL)Binding;
18 18
19 -- (void)weChatLogin; 19 +- (void)weChatLoginIsBindingThirdParty:(BOOL)Binding;
20 20
21 -- (void)sinaLogin; 21 +- (void)sinaLoginIsBindingThirdParty:(BOOL)Binding;
22 22
23 @end 23 @end
CNLiveUserSystemDemo/CNLiveUserSystemDemo/Tools/CNLiveThirdLoginManager.m
@@ -16,6 +16,7 @@ @@ -16,6 +16,7 @@
16 @interface CNLiveThirdLoginManager ()<WXApiDelegate,TencentSessionDelegate,TencentLoginDelegate,WBHttpRequestDelegate,WeiboSDKDelegate> 16 @interface CNLiveThirdLoginManager ()<WXApiDelegate,TencentSessionDelegate,TencentLoginDelegate,WBHttpRequestDelegate,WeiboSDKDelegate>
17 { 17 {
18 TencentOAuth *tencentOAuth; 18 TencentOAuth *tencentOAuth;
  19 + BOOL _isBindingThird;
19 } 20 }
20 21
21 @property (nonatomic, copy)NSString *appCode; 22 @property (nonatomic, copy)NSString *appCode;
@@ -39,7 +40,7 @@ @@ -39,7 +40,7 @@
39 }); 40 });
40 41
41 return share; 42 return share;
42 - 43 +
43 } 44 }
44 45
45 - (BOOL)handleOpenURL:(NSURL *)url 46 - (BOOL)handleOpenURL:(NSURL *)url
@@ -56,22 +57,34 @@ @@ -56,22 +57,34 @@
56 return [QQApiInterface handleOpenURL:url delegate:self]; 57 return [QQApiInterface handleOpenURL:url delegate:self];
57 58
58 } 59 }
59 - 60 +
60 else { 61 else {
61 return YES; 62 return YES;
62 } 63 }
63 } 64 }
64 65
65 --(void)qqLogin 66 +-(void)qqLoginIsBindingThirdParty:(BOOL)Binding
66 { 67 {
  68 + if (Binding) {
  69 + _isBindingThird = YES;
  70 + } else {
  71 + _isBindingThird = NO;
  72 + }
  73 +
67 tencentOAuth = [[TencentOAuth alloc] initWithAppId:QQAppKey andDelegate:self]; 74 tencentOAuth = [[TencentOAuth alloc] initWithAppId:QQAppKey andDelegate:self];
68 NSArray *permissions = [NSArray arrayWithObjects:kOPEN_PERMISSION_GET_VIP_INFO, kOPEN_PERMISSION_GET_USER_INFO, kOPEN_PERMISSION_GET_SIMPLE_USER_INFO, nil]; 75 NSArray *permissions = [NSArray arrayWithObjects:kOPEN_PERMISSION_GET_VIP_INFO, kOPEN_PERMISSION_GET_USER_INFO, kOPEN_PERMISSION_GET_SIMPLE_USER_INFO, nil];
69 [tencentOAuth authorize:permissions inSafari:NO]; 76 [tencentOAuth authorize:permissions inSafari:NO];
70 - 77 +
71 } 78 }
72 79
73 -- (void)weChatLogin 80 +- (void)weChatLoginIsBindingThirdParty:(BOOL)Binding
74 { 81 {
  82 + if (Binding) {
  83 + _isBindingThird = YES;
  84 + } else {
  85 + _isBindingThird = NO;
  86 + }
  87 +
75 if ([WXApi isWXAppInstalled]) { 88 if ([WXApi isWXAppInstalled]) {
76 SendAuthReq* req = [[SendAuthReq alloc] init]; 89 SendAuthReq* req = [[SendAuthReq alloc] init];
77 req.scope = @"snsapi_userinfo"; 90 req.scope = @"snsapi_userinfo";
@@ -83,8 +96,14 @@ @@ -83,8 +96,14 @@
83 } 96 }
84 } 97 }
85 98
86 -- (void)sinaLogin 99 +- (void)sinaLoginIsBindingThirdParty:(BOOL)Binding
87 { 100 {
  101 +
  102 + if (Binding) {
  103 + _isBindingThird = YES;
  104 + } else {
  105 + _isBindingThird = NO;
  106 + }
88 107
89 WBAuthorizeRequest *request = [WBAuthorizeRequest request]; 108 WBAuthorizeRequest *request = [WBAuthorizeRequest request];
90 request.redirectURI = kSinaRedirectURI; 109 request.redirectURI = kSinaRedirectURI;
@@ -94,14 +113,14 @@ @@ -94,14 +113,14 @@
94 @"Other_Info_2": @[@"obj1", @"obj2"], 113 @"Other_Info_2": @[@"obj1", @"obj2"],
95 @"Other_Info_3": @{@"key1": @"obj1", @"key2": @"obj2"}}; 114 @"Other_Info_3": @{@"key1": @"obj1", @"key2": @"obj2"}};
96 [WeiboSDK sendRequest:request]; 115 [WeiboSDK sendRequest:request];
97 - 116 +
98 } 117 }
99 118
100 #pragma mark -- TencentSessionDelegate 119 #pragma mark -- TencentSessionDelegate
101 //登陆完成调用 120 //登陆完成调用
102 - (void)tencentDidLogin 121 - (void)tencentDidLogin
103 { 122 {
104 - 123 +
105 [tencentOAuth getUserInfo]; 124 [tencentOAuth getUserInfo];
106 } 125 }
107 126
@@ -111,26 +130,38 @@ @@ -111,26 +130,38 @@
111 130
112 NSDictionary *result = response.jsonResponse; 131 NSDictionary *result = response.jsonResponse;
113 132
114 - NSString *gender;  
115 - if ([[result objectForKey:@"gender"] isEqualToString:@"女"]) {  
116 - gender = @"f";  
117 - } else if ([[result objectForKey:@"gender"] isEqualToString:@"女"]) {  
118 - gender = @"m";  
119 - } else {  
120 - gender = @"n";  
121 - }  
122 -  
123 - [CNLiveUserSystemCenter thirdPartyLoginWithThirdPartyPlatType:@"2" thirdPartyId:[tencentOAuth getUserOpenID] nickName:[result objectForKey:@"nickname"] gender:gender location:[result objectForKey:@"city"] faceUrl:[result objectForKey:@"figureurl"] frmId:nil success:^(id result) {  
124 - NSLog(@"qq登录------%@",result); 133 + if (_isBindingThird) {
125 134
126 - [Tools setUserLogin:YES];  
127 - [SVProgressHUD showSuccessWithStatus:@"登录成功"];  
128 - [UserInfoSava saveUserinfoDic:result[@"data"]];  
129 - [[NSNotificationCenter defaultCenter] postNotificationName:ThirdLoginSuccess object:nil userInfo:nil]; 135 + UserInfoModel *model = [UserInfoModel modelWithKeyValues:[Tools getLocalUserInfo]];
  136 +
  137 + [CNLiveUserSystemCenter bindingThirdPartyWithUid:model.uid thirdPartyPlatType:@"2" thirdPartyId:[tencentOAuth getUserOpenID] success:^(id result) {
  138 + NSLog(@"绑定成功----%@",result);
  139 + } failure:^(NSDictionary *errorDic) {
  140 + NSLog(@"绑定失败----%@",errorDic);
  141 + }];
130 142
131 - } failure:^(NSError *error) {  
132 - [[NSNotificationCenter defaultCenter] postNotificationName:ThirdLoginFailure object:nil userInfo:nil];  
133 - }]; 143 + } else {
  144 + NSString *gender;
  145 + if ([[result objectForKey:@"gender"] isEqualToString:@"女"]) {
  146 + gender = @"f";
  147 + } else if ([[result objectForKey:@"gender"] isEqualToString:@"男"]) {
  148 + gender = @"m";
  149 + } else {
  150 + gender = @"n";
  151 + }
  152 +
  153 + [CNLiveUserSystemCenter thirdPartyLoginWithThirdPartyPlatType:@"2" thirdPartyId:[tencentOAuth getUserOpenID] nickName:[result objectForKey:@"nickname"] gender:gender location:[result objectForKey:@"city"] faceUrl:[result objectForKey:@"figureurl"] frmId:nil success:^(id result) {
  154 + NSLog(@"qq登录------%@",result);
  155 +
  156 + [Tools setUserLogin:YES];
  157 + [SVProgressHUD showSuccessWithStatus:@"登录成功"];
  158 + [UserInfoSava saveUserinfoDic:result[@"data"]];
  159 + [[NSNotificationCenter defaultCenter] postNotificationName:ThirdLoginSuccess object:nil userInfo:nil];
  160 +
  161 + } failure:^(NSDictionary *errorDic) {
  162 + [[NSNotificationCenter defaultCenter] postNotificationName:ThirdLoginFailure object:nil userInfo:nil];
  163 + }];
  164 + }
134 } 165 }
135 166
136 //非网络错误导致登录失败: 167 //非网络错误导致登录失败:
@@ -162,11 +193,11 @@ @@ -162,11 +193,11 @@
162 193
163 SendAuthResp *authResp = (SendAuthResp *)resp; 194 SendAuthResp *authResp = (SendAuthResp *)resp;
164 195
165 - self.appCode = temp.code;  
166 - 196 + self.appCode = temp.code;
  197 +
167 [self getWeChatUserInfo:authResp]; 198 [self getWeChatUserInfo:authResp];
168 199
169 - // } 200 +// }
170 201
171 } 202 }
172 else if (temp.errCode == -4) { 203 else if (temp.errCode == -4) {
@@ -217,44 +248,55 @@ @@ -217,44 +248,55 @@
217 if (data) { 248 if (data) {
218 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; 249 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
219 250
220 - if ([[dic allKeys] containsObject:@"errcode"]) { 251 + if (_isBindingThird) {
  252 + UserInfoModel *model = [UserInfoModel modelWithKeyValues:[Tools getLocalUserInfo]];
  253 +
  254 + [CNLiveUserSystemCenter bindingThirdPartyWithUid:model.uid thirdPartyPlatType:@"3" thirdPartyId:dic[@"openid"] success:^(id result) {
  255 + NSLog(@"绑定成功----%@",result);
  256 + } failure:^(NSDictionary *errorDic) {
  257 + NSLog(@"绑定失败----%@",errorDic);
  258 + }];
221 259
222 - [[NSNotificationCenter defaultCenter] postNotificationName:ThirdLoginFailure object:nil userInfo:nil];  
223 } else { 260 } else {
224 -  
225 - NSString *getGender = [dic objectForKey:@"sex"];  
226 - NSString *gender;  
227 - switch ([getGender intValue]) {  
228 - case 0:  
229 - {  
230 - gender = @"n";  
231 - }  
232 - break;  
233 - case 1:  
234 - {  
235 - gender = @"m";  
236 - }  
237 - break;  
238 - case 2:  
239 - {  
240 - gender = @"f";  
241 - }  
242 - break;  
243 - default:  
244 - break;  
245 - }  
246 -  
247 - [CNLiveUserSystemCenter thirdPartyLoginWithThirdPartyPlatType:@"3" thirdPartyId:[dic objectForKey:@"openid"] nickName:[dic objectForKey:@"nickname"] gender:gender location:[dic objectForKey:@"country"] faceUrl:[dic objectForKey:@"headimgurl"] frmId:nil success:^(id result) {  
248 - NSLog(@"微信登录------%@",result); 261 + if ([[dic allKeys] containsObject:@"errcode"]) {
249 262
250 - [Tools setUserLogin:YES];  
251 - [SVProgressHUD showSuccessWithStatus:@"登录成功"];  
252 - [UserInfoSava saveUserinfoDic:result[@"data"]];  
253 - [[NSNotificationCenter defaultCenter] postNotificationName:ThirdLoginSuccess object:nil userInfo:nil];  
254 -  
255 - } failure:^(NSError *error) {  
256 [[NSNotificationCenter defaultCenter] postNotificationName:ThirdLoginFailure object:nil userInfo:nil]; 263 [[NSNotificationCenter defaultCenter] postNotificationName:ThirdLoginFailure object:nil userInfo:nil];
257 - }]; 264 + } else {
  265 +
  266 + NSString *getGender = [dic objectForKey:@"sex"];
  267 + NSString *gender;
  268 + switch ([getGender intValue]) {
  269 + case 0:
  270 + {
  271 + gender = @"n";
  272 + }
  273 + break;
  274 + case 1:
  275 + {
  276 + gender = @"m";
  277 + }
  278 + break;
  279 + case 2:
  280 + {
  281 + gender = @"f";
  282 + }
  283 + break;
  284 + default:
  285 + break;
  286 + }
  287 +
  288 + [CNLiveUserSystemCenter thirdPartyLoginWithThirdPartyPlatType:@"3" thirdPartyId:[dic objectForKey:@"openid"] nickName:[dic objectForKey:@"nickname"] gender:gender location:[dic objectForKey:@"country"] faceUrl:[dic objectForKey:@"headimgurl"] frmId:nil success:^(id result) {
  289 + NSLog(@"微信登录------%@",result);
  290 +
  291 + [Tools setUserLogin:YES];
  292 + [SVProgressHUD showSuccessWithStatus:@"登录成功"];
  293 + [UserInfoSava saveUserinfoDic:result[@"data"]];
  294 + [[NSNotificationCenter defaultCenter] postNotificationName:ThirdLoginSuccess object:nil userInfo:nil];
  295 +
  296 + } failure:^(NSDictionary *errorDic) {
  297 + [[NSNotificationCenter defaultCenter] postNotificationName:ThirdLoginFailure object:nil userInfo:nil];
  298 + }];
  299 + }
258 } 300 }
259 } 301 }
260 }); 302 });
@@ -262,7 +304,7 @@ @@ -262,7 +304,7 @@
262 }); 304 });
263 } 305 }
264 306
265 -#pragma mark - <#mark#> 307 +#pragma mark - sinaDelegate
266 - (void)didReceiveWeiboRequest:(WBBaseRequest *)request 308 - (void)didReceiveWeiboRequest:(WBBaseRequest *)request
267 { 309 {
268 310
@@ -293,25 +335,37 @@ @@ -293,25 +335,37 @@
293 if ([request.tag isEqualToString:@"userinfo"]) { 335 if ([request.tag isEqualToString:@"userinfo"]) {
294 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; 336 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
295 337
296 - NSString *gender;  
297 - if ([dic objectForKey:@"gender"]) {  
298 - gender = [dic objectForKey:@"gender"]; 338 + if (_isBindingThird) {
  339 +
  340 + UserInfoModel *model = [UserInfoModel modelWithKeyValues:[Tools getLocalUserInfo]];
  341 +
  342 + [CNLiveUserSystemCenter bindingThirdPartyWithUid:model.uid thirdPartyPlatType:@"1" thirdPartyId:[dic objectForKey:@"id"] success:^(id result) {
  343 + NSLog(@"绑定成功----%@",result);
  344 + } failure:^(NSDictionary *errorDic) {
  345 + NSLog(@"绑定失败----%@",errorDic);
  346 + }];
  347 +
299 } else { 348 } else {
300 - gender = @"n";  
301 - }  
302 -  
303 - [CNLiveUserSystemCenter thirdPartyLoginWithThirdPartyPlatType:@"1" thirdPartyId:[dic objectForKey:@"id"] nickName:[dic objectForKey:@"name"] gender:gender location:[dic objectForKey:@"location"] faceUrl:[dic objectForKey:@"avatar_hd"] frmId:nil success:^(id result) {  
304 - NSLog(@"微博登录------%@",result);  
305 349
306 - [Tools setUserLogin:YES];  
307 - [SVProgressHUD showSuccessWithStatus:@"登录成功"];  
308 - [UserInfoSava saveUserinfoDic:result[@"data"]];  
309 - [[NSNotificationCenter defaultCenter] postNotificationName:ThirdLoginSuccess object:nil userInfo:nil]; 350 + NSString *gender;
  351 + if ([dic objectForKey:@"gender"]) {
  352 + gender = [dic objectForKey:@"gender"];
  353 + } else {
  354 + gender = @"n";
  355 + }
310 356
311 - } failure:^(NSError *error) {  
312 - [[NSNotificationCenter defaultCenter] postNotificationName:ThirdLoginFailure object:nil userInfo:nil];  
313 - }];  
314 - 357 + [CNLiveUserSystemCenter thirdPartyLoginWithThirdPartyPlatType:@"1" thirdPartyId:[dic objectForKey:@"id"] nickName:[dic objectForKey:@"name"] gender:gender location:[dic objectForKey:@"location"] faceUrl:[dic objectForKey:@"avatar_hd"] frmId:nil success:^(id result) {
  358 + NSLog(@"微博登录------%@",result);
  359 +
  360 + [Tools setUserLogin:YES];
  361 + [SVProgressHUD showSuccessWithStatus:@"登录成功"];
  362 + [UserInfoSava saveUserinfoDic:result[@"data"]];
  363 + [[NSNotificationCenter defaultCenter] postNotificationName:ThirdLoginSuccess object:nil userInfo:nil];
  364 +
  365 + } failure:^(NSDictionary *errorDic) {
  366 + [[NSNotificationCenter defaultCenter] postNotificationName:ThirdLoginFailure object:nil userInfo:nil];
  367 + }];
  368 + }
315 } 369 }
316 } 370 }
317 371
CNLiveUserSystemDemo/CNLiveUserSystemDemo/Views/ThirdPartyView.h 0 → 100644
  1 +//
  2 +// ThirdPartyView.h
  3 +// CNLiveUserSystemDemo
  4 +//
  5 +// Created by iOS on 16/11/18.
  6 +// Copyright © 2016年 zhulin. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +@protocol ThirdPartyViewDelegate <NSObject>
  12 +
  13 +- (void)thirdPartyBtnAction:(NSString *)title;
  14 +
  15 +@optional
  16 +- (void)cancelThirdView;
  17 +
  18 +@end
  19 +
  20 +@interface ThirdPartyView : UIView
  21 +
  22 +@property (nonatomic, assign) id<ThirdPartyViewDelegate> delegate;
  23 +
  24 +- (instancetype)initWithFrame:(CGRect)frame binding:(BOOL)binding;
  25 +
  26 +@end
CNLiveUserSystemDemo/CNLiveUserSystemDemo/Views/ThirdPartyView.m 0 → 100644
  1 +//
  2 +// ThirdPartyView.m
  3 +// CNLiveUserSystemDemo
  4 +//
  5 +// Created by iOS on 16/11/18.
  6 +// Copyright © 2016年 zhulin. All rights reserved.
  7 +//
  8 +
  9 +#import "ThirdPartyView.h"
  10 +
  11 +#define SpaceWidth (KScreenWidth-80*3)/4
  12 +@interface ThirdPartyView ()
  13 +
  14 +@property (nonatomic, strong) UIButton *weChatBtn;
  15 +@property (nonatomic, strong) UIButton *sinaBtn;
  16 +@property (nonatomic, strong) UIButton *qqBtn;
  17 +@property (nonatomic, strong) UILabel *thirdpartyLoginLbl;
  18 +@property (nonatomic, strong) UIButton *cancelBtn;
  19 +
  20 +@end
  21 +
  22 +@implementation ThirdPartyView
  23 +
  24 +- (instancetype)initWithFrame:(CGRect)frame binding:(BOOL)binding
  25 +{
  26 + self = [super initWithFrame:frame];
  27 + if (self) {
  28 + self.backgroundColor = [UIColor blackColor];
  29 + [self addSubview:self.sinaBtn];
  30 + [self addSubview:self.qqBtn];
  31 + [self addSubview:self.weChatBtn];
  32 + [self addSubview:self.thirdpartyLoginLbl];
  33 +
  34 + if (binding) {
  35 + [self addSubview:self.cancelBtn];
  36 + }
  37 + }
  38 + return self;
  39 +}
  40 +
  41 +#pragma mark - ****************action******
  42 +- (void)thirdPartyBtnAction:(UIButton *)button
  43 +{
  44 + if (self.delegate && [self.delegate respondsToSelector:@selector(thirdPartyBtnAction:)]) {
  45 + [self.delegate thirdPartyBtnAction:button.titleLabel.text];
  46 + }
  47 +}
  48 +
  49 +- (void)cancelBtnAction
  50 +{
  51 + if (self.delegate && [self.delegate respondsToSelector:@selector(cancelThirdView)]) {
  52 + [self.delegate cancelThirdView];
  53 + }
  54 +}
  55 +
  56 +#pragma mark - ****************getter******
  57 +
  58 +- (UILabel *)thirdpartyLoginLbl
  59 +{
  60 + if (!_thirdpartyLoginLbl) {
  61 + _thirdpartyLoginLbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 20, KScreenWidth, 15)];
  62 + _thirdpartyLoginLbl.textAlignment = NSTextAlignmentCenter;
  63 + _thirdpartyLoginLbl.textColor = [UIColor orangeColor];
  64 + _thirdpartyLoginLbl.text = @"第三方平台";
  65 + _thirdpartyLoginLbl.font = [UIFont systemFontOfSize:15];
  66 + }
  67 + return _thirdpartyLoginLbl;
  68 +}
  69 +
  70 +- (UIButton *)weChatBtn
  71 +{
  72 + if (!_weChatBtn) {
  73 + _weChatBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  74 + _weChatBtn.backgroundColor = [UIColor orangeColor];
  75 + [_weChatBtn setFrame:CGRectMake(SpaceWidth, 70, 80, 40)];
  76 + _weChatBtn.layer.cornerRadius = 20;
  77 + _weChatBtn.layer.masksToBounds = YES;
  78 + [_weChatBtn setTitle:@"微信" forState:UIControlStateNormal];
  79 + [_weChatBtn addTarget:self action:@selector(thirdPartyBtnAction:) forControlEvents:UIControlEventTouchUpInside];
  80 + }
  81 + return _weChatBtn;
  82 +}
  83 +
  84 +- (UIButton *)sinaBtn
  85 +{
  86 + if (!_sinaBtn) {
  87 + _sinaBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  88 + _sinaBtn.backgroundColor = [UIColor orangeColor];
  89 + [_sinaBtn setFrame:CGRectMake(SpaceWidth*2+80, 70, 80, 40)];
  90 + _sinaBtn.layer.cornerRadius = 20;
  91 + _sinaBtn.layer.masksToBounds = YES;
  92 + [_sinaBtn setTitle:@"微博" forState:UIControlStateNormal];
  93 + [_sinaBtn addTarget:self action:@selector(thirdPartyBtnAction:) forControlEvents:UIControlEventTouchUpInside];
  94 + }
  95 + return _sinaBtn;
  96 +}
  97 +
  98 +- (UIButton *)qqBtn
  99 +{
  100 + if (!_qqBtn) {
  101 + _qqBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  102 + _qqBtn.backgroundColor = [UIColor orangeColor];
  103 + [_qqBtn setFrame:CGRectMake(SpaceWidth*3+80*2, 70, 80, 40)];
  104 + _qqBtn.layer.cornerRadius = 20;
  105 + _qqBtn.layer.masksToBounds = YES;
  106 + [_qqBtn setTitle:@"QQ" forState:UIControlStateNormal];
  107 + [_qqBtn addTarget:self action:@selector(thirdPartyBtnAction:) forControlEvents:UIControlEventTouchUpInside];
  108 + }
  109 + return _qqBtn;
  110 +}
  111 +
  112 +- (UIButton *)cancelBtn
  113 +{
  114 + if (!_cancelBtn) {
  115 + _cancelBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  116 + _cancelBtn.frame = CGRectMake(self.bounds.size.width-30, 10, 20, 20);
  117 + [_cancelBtn setBackgroundImage:[UIImage imageNamed:@"cancel"] forState:UIControlStateNormal];
  118 + [_cancelBtn addTarget:self action:@selector(cancelBtnAction) forControlEvents:UIControlEventTouchUpInside];
  119 + }
  120 + return _cancelBtn;
  121 +}
  122 +
  123 +@end
CNLiveUserSystemDemo/CNLiveUserSystemSDK.framework/CNLiveUserSystemSDK 100755 → 100644
No preview for this file type
CNLiveUserSystemDemo/CNLiveUserSystemSDK.framework/Headers/CNLiveUserSystemCenter.h
@@ -22,6 +22,7 @@ @@ -22,6 +22,7 @@
22 */ 22 */
23 + (void)setAppId:(NSString *)appId appKey:(NSString *)appKey appSecret:(NSString *)appSecret; 23 + (void)setAppId:(NSString *)appId appKey:(NSString *)appKey appSecret:(NSString *)appSecret;
24 24
  25 +
25 /** 26 /**
26 @abstract 注册 27 @abstract 注册
27 @param userName 邮箱或手机 28 @param userName 邮箱或手机
@@ -32,11 +33,12 @@ @@ -32,11 +33,12 @@
32 @param success 成功回调 33 @param success 成功回调
33 @param failure 失败回调 34 @param failure 失败回调
34 */ 35 */
35 -+ (void)registerWithUserName:(NSString *)userName password:(NSString *)password verificationCode:(NSString *)verificationCode invitationCode:(NSString *)invitationCode frmId:(NSString *)frmId success:(void (^)(id result))success failure :(void (^)(NSError *error))failure; 36 ++ (void)registerWithUserName:(NSString *)userName password:(NSString *)password verificationCode:(NSString *)verificationCode invitationCode:(NSString *)invitationCode frmId:(NSString *)frmId success:(void (^)(id result))success failure:(void (^)(NSDictionary *errorDic))failure;
  37 +
36 38
37 /** 39 /**
38 @abstract 第三方登录 40 @abstract 第三方登录
39 - @param plat 第三方平台编号(如plat: 1:sina weibo 2:qq weibo 3:weixin 4:renren 注:如qq登录,plat=@"2") 41 + @param plat 第三方平台编号(如plat: 1:sina weibo 2:qq 3:weixin 4:renren 注:如qq登录,plat=@"2")
40 @param thirdPartyId 第三方用户ID 42 @param thirdPartyId 第三方用户ID
41 @param nickName 用户昵称 43 @param nickName 用户昵称
42 @param gender 性别,m:男、f:女、n:未知(非必填) 44 @param gender 性别,m:男、f:女、n:未知(非必填)
@@ -46,7 +48,8 @@ @@ -46,7 +48,8 @@
46 @param success 成功回调 48 @param success 成功回调
47 @param failure 失败回调 49 @param failure 失败回调
48 */ 50 */
49 -+ (void)thirdPartyLoginWithThirdPartyPlatType:(NSString *)plat thirdPartyId:(NSString *)thirdPartyId nickName:(NSString *)nickName gender:(NSString *)gender location:(NSString *)location faceUrl:(NSString *)faceUrl frmId:(NSString *)frmId success:(void (^)(id result))success failure :(void (^)(NSError *error))failure; 51 ++ (void)thirdPartyLoginWithThirdPartyPlatType:(NSString *)plat thirdPartyId:(NSString *)thirdPartyId nickName:(NSString *)nickName gender:(NSString *)gender location:(NSString *)location faceUrl:(NSString *)faceUrl frmId:(NSString *)frmId success:(void (^)(id result))success failure:(void (^)(NSDictionary *errorDic))failure;
  52 +
50 53
51 /** 54 /**
52 @abstract 快捷登录 55 @abstract 快捷登录
@@ -56,7 +59,8 @@ @@ -56,7 +59,8 @@
56 @param success 成功回调 59 @param success 成功回调
57 @param failure 失败回调 60 @param failure 失败回调
58 */ 61 */
59 -+ (void)shortcutLoginWithUserName:(NSString *)userName verificationCode:(NSString *)verificationCode frmId:(NSString *)frmId success:(void (^)(id result))success failure :(void (^)(NSError *error))failure; 62 ++ (void)shortcutLoginWithUserName:(NSString *)userName verificationCode:(NSString *)verificationCode frmId:(NSString *)frmId success:(void (^)(id result))success failure:(void (^)(NSDictionary *errorDic))failure;
  63 +
60 64
61 /** 65 /**
62 @abstract 登录 66 @abstract 登录
@@ -66,7 +70,8 @@ @@ -66,7 +70,8 @@
66 @param success 成功回调 70 @param success 成功回调
67 @param failure 失败回调 71 @param failure 失败回调
68 */ 72 */
69 -+ (void)loginWithUserName:(NSString *)userName password:(NSString *)password frmId:(NSString *)frmId success:(void (^)(id result))success failure :(void (^)(NSError *error))failure; 73 ++ (void)loginWithUserName:(NSString *)userName password:(NSString *)password frmId:(NSString *)frmId success:(void (^)(id result))success failure:(void (^)(NSDictionary *errorDic))failure;
  74 +
70 75
71 /** 76 /**
72 @abstract 发送验证码 77 @abstract 发送验证码
@@ -75,7 +80,8 @@ @@ -75,7 +80,8 @@
75 @param success 成功回调 80 @param success 成功回调
76 @param failure 失败回调 81 @param failure 失败回调
77 */ 82 */
78 -+ (void)verificationCodeType:(VerificationCodeType)type mobile:(NSString *)mobile success:(void (^)(id result))success failure :(void (^)(NSError *error))failure; 83 ++ (void)verificationCodeType:(VerificationCodeType)type mobile:(NSString *)mobile success:(void (^)(id result))success failure:(void (^)(NSDictionary *errorDic))failure;
  84 +
79 85
80 /** 86 /**
81 @abstract 更新用户附加信息 87 @abstract 更新用户附加信息
@@ -84,7 +90,8 @@ @@ -84,7 +90,8 @@
84 @param success 成功回调 90 @param success 成功回调
85 @param failure 失败回调 91 @param failure 失败回调
86 */ 92 */
87 -+ (void)updateOtherInfoWithUid:(NSString *)uid extInfo:(NSString *)extInfo success:(void (^)(id result))success failure :(void (^)(NSError *error))failure; 93 ++ (void)updateOtherInfoWithUid:(NSString *)uid extInfo:(NSString *)extInfo success:(void (^)(id result))success failure:(void (^)(NSDictionary *errorDic))failure;
  94 +
88 95
89 /** 96 /**
90 @abstract 修改用户单项信息 97 @abstract 修改用户单项信息
@@ -94,7 +101,8 @@ @@ -94,7 +101,8 @@
94 @param success 成功回调 101 @param success 成功回调
95 @param failure 失败回调 102 @param failure 失败回调
96 */ 103 */
97 -+ (void)modifyUserInfoType:(UserInfoType)type uid:(NSString *)uid modifyInfo:(NSString *)info success:(void (^)(id result))success failure :(void (^)(NSError *error))failure; 104 ++ (void)modifyUserInfoType:(UserInfoType)type uid:(NSString *)uid modifyInfo:(NSString *)info success:(void (^)(id result))success failure:(void (^)(NSDictionary *errorDic))failure;
  105 +
98 106
99 /** 107 /**
100 @abstract 更新手机号 108 @abstract 更新手机号
@@ -104,7 +112,19 @@ @@ -104,7 +112,19 @@
104 @param success 成功回调 112 @param success 成功回调
105 @param failure 失败回调 113 @param failure 失败回调
106 */ 114 */
107 -+ (void)updateMobileWithUid:(NSString *)uid mobile:(NSString *)mobile verificationCode:(NSString *)verificationCode success:(void (^)(id result))success failure :(void (^)(NSError *error))failure; 115 ++ (void)updateMobileWithUid:(NSString *)uid mobile:(NSString *)mobile verificationCode:(NSString *)verificationCode success:(void (^)(id result))success failure:(void (^)(NSDictionary *errorDic))failure;
  116 +
  117 +
  118 +/**
  119 + @abstract 绑定第三方账号
  120 + @param uid 用户ID
  121 + @param plat 第三方平台编号(如platform: 1:sina weibo 2:qq 3:weixin 4:renren 注:如绑定qq,thirdPartyPlat = @"2")
  122 + @param thirdPartyId 第三方用户ID
  123 + @param success 成功回调
  124 + @param failure 失败回调
  125 + */
  126 ++ (void)bindingThirdPartyWithUid:(NSString *)uid thirdPartyPlatType:(NSString *)plat thirdPartyId:(NSString *)thirdPartyId success:(void (^)(id result))success failure:(void (^)(NSDictionary *errorDic))failure;
  127 +
108 128
109 /** 129 /**
110 @abstract 修改密码(通过手机号修改) 130 @abstract 修改密码(通过手机号修改)
@@ -114,7 +134,8 @@ @@ -114,7 +134,8 @@
114 @param success 成功回调 134 @param success 成功回调
115 @param failure 失败回调 135 @param failure 失败回调
116 */ 136 */
117 -+ (void)changePasswordWithMobile:(NSString *)mobile verificationCode:(NSString *)verificationCode newPassword:(NSString *)newPassword success:(void (^)(id result))success failure :(void (^)(NSError *error))failure; 137 ++ (void)changePasswordWithMobile:(NSString *)mobile verificationCode:(NSString *)verificationCode newPassword:(NSString *)newPassword success:(void (^)(id result))success failure:(void (^)(NSDictionary *errorDic))failure;
  138 +
118 139
119 /** 140 /**
120 @abstract 上传头像 141 @abstract 上传头像
@@ -123,7 +144,8 @@ @@ -123,7 +144,8 @@
123 @param success 成功回调 144 @param success 成功回调
124 @param failure 失败回调 145 @param failure 失败回调
125 */ 146 */
126 -+ (void)uploadIconWithUid:(NSString *)uid icon:(UIImage *)icon success:(void (^)(id result))success failure :(void (^)(NSError *error))failure; 147 ++ (void)uploadIconWithUid:(NSString *)uid icon:(UIImage *)icon success:(void (^)(id result))success failure:(void (^)(NSDictionary *errorDic))failure;
  148 +
127 149
128 /** 150 /**
129 @abstract 查询用户信息 151 @abstract 查询用户信息
@@ -132,7 +154,8 @@ @@ -132,7 +154,8 @@
132 @param success 成功回调 154 @param success 成功回调
133 @param failure 失败回调 155 @param failure 失败回调
134 */ 156 */
135 -+ (void)queryUserInfoWithUid:(NSString *)uid srcUid:(NSString *)srcUid success:(void (^)(id result))success failure :(void (^)(NSError *error))failure; 157 ++ (void)queryUserInfoWithUid:(NSString *)uid srcUid:(NSString *)srcUid success:(void (^)(id result))success failure:(void (^)(NSDictionary *errorDic))failure;
  158 +
136 159
137 /** 160 /**
138 @abstract 用户反馈 161 @abstract 用户反馈
@@ -141,7 +164,8 @@ @@ -141,7 +164,8 @@
141 @param success 成功回调 164 @param success 成功回调
142 @param failure 失败回调 165 @param failure 失败回调
143 */ 166 */
144 -+ (void)feedbackWithContentId:(NSString *)contentId message:(NSString *)message success:(void (^)(id result))success failure :(void (^)(NSError *error))failure; 167 ++ (void)feedbackWithContentId:(NSString *)contentId message:(NSString *)message success:(void (^)(id result))success failure:(void (^)(NSDictionary *errorDic))failure;
  168 +
145 169
146 /** 170 /**
147 * 获取SDK版本号 171 * 获取SDK版本号
CNLiveUserSystemDemo/CNLiveUserSystemSDK.framework/Info.plist
No preview for this file type