ipu的trunk版ios客户端工程

IPUAuthenticationPlugin.m 8.0KB

    // // IPUAuthenticationPlugin.m // IPUMobileFunc // // Created by 秋林 on 2019/1/18. // Copyright © 2019 Asiainfo. All rights reserved. // #import "IPUAuthenticationPlugin.h" #import <LocalAuthentication/LocalAuthentication.h> #import <IPUMobileUI/IPUMobileUI.h> @implementation IPUAuthenticationPlugin #pragma mark - 指纹锁 /** 是否支持指纹解锁 */ - (void)isSupportFingerprintAuthentication:(NSArray *)params { LAContext *context = [[LAContext alloc] init]; NSError *error = nil; // 设备是否支持TouchId if (![context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error] || error) { [self callback:@"1"];//不支持指纹解锁 } else { [self callback:@"0"];//支持指纹解锁 } } /** 指纹解锁 */ - (void)fingerprintAuthentication:(NSArray *)params { LAContext *context = [[LAContext alloc] init]; NSError *error = nil; // 设备是否支持TouchId if (![context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error] || error) { [self callback:@"2"];//不支持指纹解锁 return; } NSString *localizedFallbackTitle = @"输入密码解锁"; NSString *localizedReason = @"需要验证您的touch ID"; if (params.count > 0) { localizedFallbackTitle = params[0]; } if (params.count > 1) { localizedReason = params[1]; } context.localizedFallbackTitle = localizedFallbackTitle; // 弹窗验证 __weak typeof(self) weakSelf = self; [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:localizedReason reply:^(BOOL success, NSError * _Nullable error) { dispatch_async(dispatch_get_main_queue(), ^{ __strong typeof(self) strongSelf = weakSelf; if (success) { [strongSelf callback:@"0"];//指纹解锁验证成功 return; } LAError errorCode = error.code; if (errorCode == LAErrorSystemCancel || errorCode == LAErrorUserCancel) { // 系统取消授权、用户取消授权 [strongSelf callback:@"1"]; return; } [strongSelf callback:@"2"]; }); }]; } #pragma mark - 手势锁 /** 设置手势锁颜色:常规颜色、选中颜色、错误颜色 */ -(void)styleGestureLock:(NSArray *)params{ if (params && params.count>0) { NSString *bgColor = nil; if (params[0]==[NSNull null]) { bgColor = nil; }else{ bgColor = params[0]; } NSArray *lockColors = nil; if (params.count>1) { if (params[1]==[NSNull null]) { lockColors = nil; }else{ lockColors = params[1]; } } NSArray *textColors = nil; if (params.count>2) { if (params[2]==[NSNull null]) { textColors = nil; }else{ textColors = params[2]; } } NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; if (bgColor) { [defaults setObject:[NSString stringWithFormat:@"%@",bgColor] forKey:BgColorKey]; }else{ [defaults setObject:nil forKey:BgColorKey]; } if (lockColors && lockColors.count==3) { [defaults setObject:[NSString stringWithFormat:@"%@",lockColors[0]] forKey:LockNormalColorKey]; [defaults setObject:[NSString stringWithFormat:@"%@",lockColors[1]] forKey:LockSelectedColorKey]; [defaults setObject:[NSString stringWithFormat:@"%@",lockColors[2]] forKey:LockErrorColorKey]; }else{ [defaults setObject:nil forKey:LockNormalColorKey]; [defaults setObject:nil forKey:LockSelectedColorKey]; [defaults setObject:nil forKey:LockErrorColorKey]; } if (textColors && textColors.count==3) { [defaults setObject:[NSString stringWithFormat:@"%@",textColors[0]] forKey:TextNormalColorKey]; [defaults setObject:[NSString stringWithFormat:@"%@",textColors[1]] forKey:TextErrorColorKey]; [defaults setObject:[NSString stringWithFormat:@"%@",textColors[2]] forKey:TextHighlightColorKey]; }else{ [defaults setObject:nil forKey:TextNormalColorKey]; [defaults setObject:nil forKey:TextErrorColorKey]; [defaults setObject:nil forKey:TextHighlightColorKey]; } [defaults synchronize]; } } /** 设置手势锁 */ - (void)setGestureLock:(NSArray *)params{ [CoreLockViewController showSettingLockVCInVC:[self getViewController] successBlock:^(CoreLockViewController *lockVC, NSString *pwd) { [self callback:@"1"]; [lockVC dismiss:.5f]; }]; } /** 手势解锁 */ - (void)validateGestureLock:(NSArray *)params{ BOOL hasPwd = [self hasGesturePassword]; if(!hasPwd){ [self callback:@"你还没有设置密码,请先设置密码"]; }else { NSString *imgUrl = nil; NSString *userTip = nil; if (params && params.count>0) { if (params[0]==[NSNull null]) { userTip = nil; }else{ userTip = params[0]; } if (params.count>1) { if (params[1]==[NSNull null]) { imgUrl = nil; }else{ imgUrl = params[1]; } } } NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; if (imgUrl) { [defaults setObject:[NSString stringWithFormat:@"%@",imgUrl] forKey:LoginUserImgUrlKey]; }else{ [defaults setObject:nil forKey:LoginUserImgUrlKey]; } if (userTip) { [defaults setObject:[NSString stringWithFormat:@"%@",userTip] forKey:LoginUserNameKey]; }else{ [defaults setObject:nil forKey:LoginUserNameKey]; } [defaults synchronize]; [CoreLockViewController showVerifyLockVCInVC:[self getViewController] Plugin:self successBlock:^(CoreLockViewController *lockVC, NSString *pwd) { [self callback:@"1"]; [lockVC dismiss:.5f]; } failedBlock:^{ [self callback:@"0"]; } forgetPwdBlock:^(CoreLockViewController *lockVC){ [self callback:@"-1"]; [lockVC dismiss:.5f]; }]; } } /** 修改手势密码 */ - (void)updateGestureLock:(NSArray *)params{ [CoreLockViewController showModifyLockVCInVC:[self getViewController] successBlock:^(CoreLockViewController *lockVC, NSString *pwd) { [self callback:@"1"]; [lockVC dismiss:.5f]; }]; } /** 删除手势密码 */ - (void)delGestureLock:(NSArray *)params{ NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject:nil forKey:CoreLockPWDKey]; [defaults synchronize]; [self callback:@"1"]; } /* 判断是否设置原生手势锁 */ -(void)isSetGestureLock:(NSArray *)params{ BOOL isGesture = [self hasGesturePassword]; if (isGesture) { [self callback:@"1"]; }else{ [self callback:@"0"]; } } #pragma mark - other method /* 判断是否设置过手势密码 */ -(BOOL)hasGesturePassword{ NSString * str = [self fetchCoreLockPassword]; if (![IPUCommonTool isNullWithString:str]) { return YES; } return NO; } /* 保存手势密码 */ -(void)setCoreLockPassword:(NSString *)str{ //获取preference NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; //保存 [defaults setObject:str forKey:CoreLockPWDKey]; //立即同步 [defaults synchronize]; } /* 获取保存在本地的手势密码 */ -(NSString *)fetchCoreLockPassword{ //获取preference NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; //读取 NSString * str = (NSString *)[defaults objectForKey:CoreLockPWDKey]; return str; } @end