309 lines
11 KiB
Objective-C
309 lines
11 KiB
Objective-C
//
|
|
// GiGaUserLoginVC.m
|
|
// GIGA
|
|
//
|
|
// Created by lianxiang on 2018/8/20.
|
|
// Copyright © 2018年 com.giga.ios. All rights reserved.
|
|
//
|
|
|
|
#import "GiGaUserLoginVC.h"
|
|
#import "UINavigationBar+Custom.h"
|
|
#import "PassWordResetVC.h"
|
|
#import "GiGaRegistViewController.h"
|
|
#import "GiGaUserDefault.h"
|
|
#import "WXApi.h"
|
|
#import "GiGaNetManager.h"
|
|
#import "WeiIXinApiManager.h"
|
|
#import "GiGaBaseAPiRequest.h"
|
|
#import "GiGaUser.h"
|
|
#import "GiGaServerConfig.h"
|
|
|
|
@interface GiGaUserLoginVC ()
|
|
@property (weak, nonatomic) IBOutlet UIImageView *userImagView;
|
|
@property (weak, nonatomic) IBOutlet UITextField *acountTextField;
|
|
@property (weak, nonatomic) IBOutlet UITextField *passwordTextField;
|
|
@property (weak, nonatomic) IBOutlet UIButton *loginBtn;
|
|
|
|
@property (weak, nonatomic) IBOutlet UIButton *weiXinLoginBtn;
|
|
@property (weak, nonatomic) IBOutlet UIButton *registBtn;
|
|
|
|
@property (weak, nonatomic) IBOutlet UIImageView *wexinbtnImageView;
|
|
@property (weak, nonatomic) IBOutlet UIButton *secretBtn;
|
|
|
|
@end
|
|
|
|
@implementation GiGaUserLoginVC
|
|
|
|
- (void)viewDidLoad {
|
|
[super viewDidLoad];
|
|
|
|
// Do any additional setup after loading the view from its nib.
|
|
[self setUpX];
|
|
[self textFieldUI];
|
|
[self.view bringSubviewToFront:self.weiXinLoginBtn];
|
|
[self.registBtn addTarget:self action:@selector(registBtnAction) forControlEvents:UIControlEventTouchUpInside];
|
|
[self.loginBtn addTarget:self action:@selector(loginBtnAction:) forControlEvents:UIControlEventTouchUpInside];
|
|
[self.weiXinLoginBtn addTarget:self
|
|
action:@selector(weiXinLoginAction) forControlEvents:UIControlEventTouchUpInside];
|
|
[self.secretBtn addTarget:self action:@selector(secretBtnAction:) forControlEvents:UIControlEventTouchUpInside];
|
|
NC_ADD_TARGET_NAME_OBJECT(self, @selector(WeiXinLongIn:), kWeiXinAuthrization_Success, nil)
|
|
NC_ADD_TARGET_NAME_OBJECT(self, @selector(userRegistSuccsessNoti:), kUserRegistSucccess, nil)
|
|
|
|
// if (![WXApi isWXAppInstalled]) {
|
|
// self.weiXinLoginBtn.hidden = YES;
|
|
// }
|
|
|
|
|
|
}
|
|
|
|
-(void)dealloc{
|
|
|
|
NC_REMOVE_NAME(self, kWeiXinAuthrization_Success,nil);
|
|
}
|
|
|
|
-(void)setUpX{
|
|
|
|
UIButton *rightBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
rightBtn.frame = CGRectMake(0, 0, 40, 40);
|
|
[rightBtn setImage:[UIImage imageNamed:@"btn_back"] forState:UIControlStateNormal];
|
|
[rightBtn addTarget:self action:@selector(rightBtnAction) forControlEvents:UIControlEventTouchUpInside];
|
|
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:rightBtn];
|
|
}
|
|
|
|
-(void)textFieldUI{
|
|
|
|
|
|
UIView *acountView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
|
|
UIImageView *acountViewIcon = [[UIImageView alloc] initWithFrame:CGRectMake(15,9, 12, 22)];
|
|
acountViewIcon.image = [UIImage imageNamed:@"ic_number"];
|
|
[acountView addSubview:acountViewIcon];
|
|
self.acountTextField.leftView = acountView;
|
|
self.acountTextField.leftViewMode = UITextFieldViewModeAlways;
|
|
|
|
// NSAttributedString *passholderText = [[NSAttributedString alloc] initWithString:@"密码" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14],NSForegroundColorAttributeName:[UIColor redColor]}];
|
|
// self.passwordTextField.attributedPlaceholder = passholderText;
|
|
UIView *passView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
|
|
UIImageView *passViewIcon = [[UIImageView alloc] initWithFrame:CGRectMake(15,8, 12, 22)];
|
|
passViewIcon.image = [UIImage imageNamed:@"icon_key"];
|
|
[passView addSubview:passViewIcon];
|
|
self.passwordTextField.leftView = passView;
|
|
self.passwordTextField.leftViewMode = UITextFieldViewModeAlways;
|
|
self.loginBtn.layer.masksToBounds = YES;
|
|
self.loginBtn.layer.cornerRadius = self.loginBtn.frame.size.height / 2;
|
|
|
|
NSMutableAttributedString *attri = [[NSMutableAttributedString alloc] init];
|
|
|
|
NSTextAttachment *attch = [[NSTextAttachment alloc] init];
|
|
attch.image = [UIImage imageNamed:@"ic_wechat"];
|
|
attch.bounds = CGRectMake(0,-4, 12.9, 12.5);
|
|
NSAttributedString *imastr=[NSAttributedString attributedStringWithAttachment:attch];
|
|
[attri appendAttributedString:imastr];
|
|
|
|
NSAttributedString *titleStr = [[NSAttributedString alloc] initWithString:@" 微信账号登录" attributes:@{NSFontAttributeName:[UIFont fontWithName:@"PingFangSC-Semibold" size:10],NSForegroundColorAttributeName:[UIColor colorWithRed:187/255.0 green:187/255.0 blue:187/255.0 alpha:1/1.0]}];
|
|
|
|
[attri appendAttributedString:titleStr];
|
|
[self.weiXinLoginBtn setAttributedTitle:attri forState:UIControlStateNormal];
|
|
|
|
}
|
|
|
|
-(void)rightBtnAction{
|
|
|
|
[self dismissViewControllerAnimated:YES completion:nil];
|
|
}
|
|
|
|
-(void)viewWillAppear:(BOOL)animated{
|
|
|
|
[super viewWillAppear:animated];
|
|
[self.navigationController.navigationBar setClearNav];
|
|
}
|
|
|
|
-(void)viewDidAppear:(BOOL)animated{
|
|
[super viewDidAppear:animated];
|
|
if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
|
|
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
|
|
}
|
|
}
|
|
|
|
-(void)viewWillDisappear:(BOOL)animated{
|
|
[super viewWillDisappear:animated];
|
|
if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
|
|
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
|
|
}
|
|
}
|
|
|
|
- (void)didReceiveMemoryWarning {
|
|
|
|
[super didReceiveMemoryWarning];
|
|
// Dispose of any resources that can be recreated.
|
|
}
|
|
|
|
- (IBAction)forgetPassBtn:(id)sender {
|
|
|
|
PassWordResetVC *passVC= [[PassWordResetVC alloc] init];
|
|
[self.navigationController pushViewController:passVC animated:YES];
|
|
|
|
}
|
|
|
|
#pragma mark - 去注册
|
|
-(void)registBtnAction{
|
|
|
|
GiGaRegistViewController *registVC = [[GiGaRegistViewController alloc] init];
|
|
[self.navigationController pushViewController:registVC animated:YES];
|
|
|
|
}
|
|
|
|
#pragma mark 手机号登录
|
|
-(void)loginBtnAction:(UIButton *)btn{
|
|
|
|
if (self.acountTextField.text == nil) {
|
|
GIGA_ShowToast(@"请输入手机号");
|
|
return;
|
|
}
|
|
if (![GiGaHelper isPhoneNumber:self.acountTextField.text]) {
|
|
GIGA_ShowToast(@"请输入正确手机号");
|
|
return;
|
|
}
|
|
|
|
if (self.passwordTextField.text == nil) {
|
|
GIGA_ShowToast(@"密码不能为空");
|
|
return;
|
|
}
|
|
// if (self.passwordTextField.text.length < =6) {
|
|
// GIGA_ShowToast(@"密码长度不能小于六位字符");
|
|
// return;
|
|
// }
|
|
|
|
|
|
// [self dismissViewControllerAnimated:YES completion:nil];
|
|
[self loginWithAction:btn];
|
|
|
|
}
|
|
|
|
-(void)loginWithAction:(UIButton *)btn{
|
|
|
|
NSDictionary *params = @{
|
|
@"username":self.acountTextField.text,
|
|
@"password":self.passwordTextField.text
|
|
};
|
|
// GiGaBaseAPiRequest *loginApi = [GiGaBaseAPiRequest initWithRequestPath:@"sys/v1/login" method:RequestPostMethod parms:params];
|
|
//weakify(self);
|
|
// [loginApi requstDataWithResult:^(GiGaAPIResult *result) {
|
|
// GILog(@"**登陆***\n resultDic:%ld\n code:%@\n *******\n",(long)result.code,result.dic);
|
|
// if (result.success) {
|
|
// GILog(@"****登陆成功****");
|
|
// [self saveUserData];
|
|
// [self dismissViewControllerAnimated:YES completion:nil];
|
|
// }
|
|
// }];
|
|
|
|
[self.view makeToastActivity:CSToastPositionCenter];
|
|
NSString *url = [NSString stringWithFormat:@"%@sys/v1/login",[GiGaServerConfig getMainUrl]];
|
|
[GiGaNetManager userLoginrequest:url params:params completionHandler:^(NSURLResponse *response, NSDictionary *resDic, NSError * _Nullable error) {
|
|
GILog(@"%@",resDic);
|
|
[self.view hideToastActivity];
|
|
GiGaAPIResult *result = [[GiGaAPIResult alloc] initWithDictionary:resDic];
|
|
|
|
GILog(@"**登陆***\n code:%ld\n message:%@\n *******\n",result.code,result.message);
|
|
if (result.success) {
|
|
//token
|
|
[GiGaUserDefault saveToken:resDic[@"token"]];
|
|
//埋点
|
|
[MobClick endEvent:MobClick_UserLogin];
|
|
//暂定123 登陆标志
|
|
[GiGaUserDefault saveUserId:@"123"];
|
|
GIGA_WIndowTost(@"登录成功!");
|
|
[self dismissViewControllerAnimated:YES completion:nil];
|
|
|
|
}else{
|
|
GIGA_ShowToast(result.message);
|
|
}
|
|
|
|
}];
|
|
|
|
}
|
|
|
|
-(void)saveUserData{
|
|
//埋点
|
|
[MobClick endEvent:MobClick_UserLogin];
|
|
[GiGaUserDefault saveUserId:@"123"];
|
|
|
|
}
|
|
|
|
#pragma mark - 微信登录
|
|
// 授权
|
|
-(void)weiXinLoginAction{
|
|
|
|
if ([WXApi isWXAppInstalled]) {
|
|
SendAuthReq * req = [[SendAuthReq alloc] init] ;
|
|
req.scope = @"snsapi_userinfo";
|
|
req.state = @"wx_oauth2_authorization_state";
|
|
[WXApi sendReq:req];
|
|
}
|
|
}
|
|
|
|
//授权成功获取access_token
|
|
-(void)WeiXinLongIn:(NSNotification *)notification{
|
|
|
|
NSDictionary *param = @{
|
|
@"appid":WXin_APPID,
|
|
@"secret":WXin_APPSecret,
|
|
@"code":notification.object[@"code"],
|
|
@"grant_type":@"authorization_code"
|
|
};
|
|
[WeiIXinApiManager weixinAccessTokeRequstUrl:@"https://api.weixin.qq.com/sns/oauth2/access_token" parameters:param success:^(id response) {
|
|
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingAllowFragments error:nil];
|
|
GILog(@"access_token back -->%@",dict);
|
|
[GiGaUserDefault saveWeiXinaccesstokenInfoWithDic:dict];
|
|
[self requstWeiXinUserinfo];
|
|
|
|
} failure:^(NSError *err) {
|
|
GILog(@"access_token err-->%@",err.localizedDescription);
|
|
|
|
}];
|
|
}
|
|
|
|
//获取微信用户信息
|
|
-(void)requstWeiXinUserinfo{
|
|
|
|
NSDictionary *tokenDic = [GiGaUserDefault getWeiXinAccessToenDic];
|
|
NSDictionary *param = @{
|
|
@"openid":tokenDic[@"openid"],
|
|
@"access_token":tokenDic[@"access_token"],
|
|
};
|
|
|
|
[WeiIXinApiManager getWeiXinUserInfoUrl:@"https://api.weixin.qq.com/sns/userinfo" parameters:param success:^(id response) {
|
|
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingAllowFragments error:nil];
|
|
GILog(@"weixinUser info back -->%@",dict);
|
|
|
|
} failure:^(NSError *err) {
|
|
|
|
GILog(@"weixin_userinfoApi err-->%@",err.localizedDescription);
|
|
}];
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//接收注册成功通知
|
|
-(void)userRegistSuccsessNoti:(NSNotification *)noti{
|
|
|
|
self.acountTextField.text =(NSString *)noti.object;
|
|
}
|
|
|
|
//密码加密按钮
|
|
-(void)secretBtnAction:(UIButton *)btn{
|
|
btn.selected = !btn.selected;
|
|
if (btn.selected) {
|
|
//秘文
|
|
self.passwordTextField.secureTextEntry = YES;
|
|
[btn setImage:[UIImage imageNamed:@"btn_tab_notselect"] forState:UIControlStateSelected];
|
|
}else{
|
|
self.passwordTextField.secureTextEntry = NO;
|
|
[btn setImage:[UIImage imageNamed:@"btn_tab_desplay"] forState:UIControlStateNormal];
|
|
}
|
|
|
|
}
|
|
|
|
@end
|