iOS指纹验证TouchID应用学习教程2

2020-01-18 19:33:55于海丽

第四步

实现控件的点击方法,以及在.h文件中声明的弹出方法


//快速创建
+ (instancetype)touchIDView
{
 return [[self alloc]init];
}

/** 弹出 */
- (void)show
{
 [self showInView:[UIApplication sharedApplication].keyWindow];
} 

- (void)showInView:(UIView *)view
{
 // 浮现
 [view addSubview:self];
}


-(void)clickToCheckTouchID
{
 NSLog(@"点击了指纹解锁");
 [self.touchID startWJTouchIDWithMessage:WJNotice(@"自定义信息", @"The Custom Message") fallbackTitle:WJNotice(@"", @"Fallback Title") delegate:self];
}

-(void)quitContent
{
 NSLog(@"点击了quit");
 [UIView animateWithDuration:3 animations:^{
 self.alpha = 0;
 } completion:^(BOOL finished) {
 [self removeFromSuperview];
 }];
}

    上面再退出的时候我还加了一个小小的特效,就是颜色渐渐变成无色,这样有时候可以遮盖你app里面的一些小问题。偷个懒。

第五步

    这里也是跟第一部分一样,实现验证的回调函数。这边的回调函数呢,跟之前的差不多,但是里面的内容就不一样了。而且我这里把不支持touchid的方法加进来,按理说这边是不需要加的,但是我前面没加进来,这里就硬塞进来吧。。。大家就凑合着看,自己用的时候可以直接删掉,不删掉也没事,就是增加点代码量而已。。。

 


/**
* TouchID验证成功
*/
- (void) WJTouchIDAuthorizeSuccess {
 [MBProgressHUD showText:@"解锁成功" view:self];
 [[NSUserDefaults standardUserDefaults]setObject:@"YES" forKey:@"touchIDISon"];
// [self dismissViewControllerAnimated:YES completion:nil];
 [self removeFromSuperview];
}

/**
* TouchID验证失败
*/
- (void) WJTouchIDAuthorizeFailure {
 [MBProgressHUD showText:@"解锁失败" view:self];
 [[NSUserDefaults standardUserDefaults]setObject:@"YES" forKey:@"touchIDISon"];
}
/**
* 取消TouchID验证 (用户点击了取消)
*/
- (void) WJTouchIDAuthorizeErrorUserCancel {
 [[NSUserDefaults standardUserDefaults]setObject:@"YES" forKey:@"touchIDISon"];
}

/**
* 在验证的TouchID的过程中被系统取消 例如突然来电话、按了Home键、锁屏...
*/
- (void) WJTouchIDAuthorizeErrorSystemCancel {
 [[NSUserDefaults standardUserDefaults]setObject:@"YES" forKey:@"touchIDISon"];
}

/**
* 无法启用TouchID,设备没有设置密码
*/
- (void) WJTouchIDAuthorizeErrorPasscodeNotSet {
 [[NSUserDefaults standardUserDefaults]setObject:@"YES" forKey:@"touchIDISon"];
}

/**
* 设备没有录入TouchID,无法启用TouchID
*/
- (void) WJTouchIDAuthorizeErrorTouchIDNotEnrolled {
 [[NSUserDefaults standardUserDefaults]setObject:@"YES" forKey:@"touchIDISon"];
}

/**
* 该设备的TouchID无效
*/
- (void) WJTouchIDAuthorizeErrorTouchIDNotAvailable {
 [[NSUserDefaults standardUserDefaults]setObject:@"YES" forKey:@"touchIDISon"];
}

/**
* 多次连续使用Touch ID失败,Touch ID被锁,需要用户输入密码解锁
*/
- (void) WJTouchIDAuthorizeLAErrorTouchIDLockout {
 [[NSUserDefaults standardUserDefaults]setObject:@"YES" forKey:@"touchIDISon"];
}

/**
* 当前软件被挂起取消了授权(如突然来了电话,应用进入前台)
*/
- (void) WJTouchIDAuthorizeLAErrorAppCancel {
 [[NSUserDefaults standardUserDefaults]setObject:@"YES" forKey:@"touchIDISon"];
}

/**
* 当前软件被挂起取消了授权 (授权过程中,LAContext对象被释)
*/
- (void) WJTouchIDAuthorizeLAErrorInvalidContext {
 [[NSUserDefaults standardUserDefaults]setObject:@"YES" forKey:@"touchIDISon"];
}
/**
* 当前设备不支持指纹识别
*/
-(void)WJTouchIDIsNotSupport {
 [[NSUserDefaults standardUserDefaults]setObject:@"YES" forKey:@"touchIDISon"];
}