苹果手机支持指纹输入,所有在开发过程的小伙伴们肯定碰到过 用touch代替输入密码的情况。今天在这写些关于touch的iOS开发,请大婶们指教
iOS中关于touch开发,需要导入两个系统头文件
#import <LocalAuthentication/LocalAuthentication.h>
- 1、首先检查设备是否支持touch
- (BOOL)checkTouchID
{
//初始化上下文对象
LAContext * context = [[LAContext alloc] init];
//检查设备是否支持touch
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil]) {
// 支持
return YES;
}else{
//不支持指纹识别
return NO;
}
}
- 2、支持的话,请用户输入touch指纹
- (void)checkTouchID
{
//初始化上下文对象
LAContext * context = [[LAContext alloc] init];
//检查设备是否支持touch
if (![context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil]) {
//不支持touch,直接返回
return;
}
//指纹验证
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"touch" reply:^(BOOL success, NSError *error) {
if (success) {
//验证成功,主线程处理UI
}else{
switch (error.code) {
case LAErrorSystemCancel:{
//切换到其他APP,系统取消验证Touch ID
break;
}
case LAErrorUserCancel:{
//用户取消验证Touch ID
break;
}
case LAErrorUserFallback:{
//用户选择输入密码,切换主线程处理
dispatch_async(dispatch_get_main_queue(), ^{
// 主线程处理UI
});
break;
}
default:
break;
}
}
}];
}
- 3、处理完毕后,笔者用block把值传回了控制器,下面是.m文件中的代码
- (void)isSupportTouch:(touchBlock)block
{
//初始化上下文对象
LAContext * context = [[LAContext alloc] init];
//检查设备是否支持touch
if (![context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil]) {
//不支持touch,直接返回
block(NO, @"设备不支持touch");
return;
}
//指纹验证
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"touch" reply:^(BOOL success, NSError *error) {
if (success) {
//验证成功,主线程处理UI
block(YES, @"验证成功");
}else{
switch (error.code) {
case LAErrorSystemCancel:{
// 切换到其他APP,系统取消验证Touch ID
block(NO, @"系统取消验证Touch ID");
break;
}
case LAErrorUserCancel:{
//用户取消验证Touch ID
block(NO, @"用户取消验证Touch ID");
break;
}
case LAErrorUserFallback:{
//用户选择输入密码,切换主线程处理
dispatch_async(dispatch_get_main_queue(), ^{
// 主线程处理UI
block(NO, @"用户选择输入密码");
});
break;
}
default:{
block(NO, @"其他未知情况");
}
break;
}
}
}];
}
-
4、控制器中代码和打印结果
block传回给VC的值.png -
5、如果还有什么后续操作,就在回调中继续写吧
PS:自恋的贴出
[github地址][1]
[1]: https://github.com/liyang123/LYTouchDemo.git
网友评论