效果图
touch_ID效果图
前言
2013年9月,苹果为当时发布的最新iPhone产品配备了一系列硬件升级方案。在iPhone 5s当中,最具创新特性的机制无疑要数围绕Home按钮设计的超薄金属圈,也就是被称为Touch ID的指纹传感器。这套Local Authentication框架能够轻松实现用户身份验证,大家可以利用它来完成应用程序的登录机制或者通过它保护应用程序当中的敏感数据。
教程
1.导入对应的框架头文件
刚才我们说到,Touch ID指纹传感器所属Local Authentication框架.所以,第一步,我们需要导入头文件
#import
2.判断设置是否支持Touch ID 或者 本机是否已经录入指纹
这里我们需要使用到LAContext类,LAContext就是Touch ID
2016.3.14 一个小补充, 之前有朋友给我留言和在我QQ上问我, 如果点击了输入密码,怎么调用系统的密码框.其实很简单,把下面代码的LAPolicyDeviceOwnerAuthenticationWithBiometrics改成LAPolicyDeviceOwnerAuthentication即可.点进头文件看一下,就了然了...
if([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {// 进行指纹验证操作,请看第三步}else{if(self.isSimulator) {// 判断是否是模拟器Simulator[[[UIAlertViewalloc] initWithTitle:@"提示"message:@"请用真机测试~"delegate:nilcancelButtonTitle:@"好的"otherButtonTitles:nil,nil] show]; }else{// 不支持Touch ID操作[[[UIAlertViewalloc] initWithTitle:@"提示"message:@"不支持Touch ID~"delegate:nilcancelButtonTitle:@"好的"otherButtonTitles:nil,nil] show]; } }
tip: 判断当前设置是否是模拟器Simulator
- (BOOL)isSimulator{structutsname systemInfo; uname(&systemInfo);NSString*deviceMachine = [NSStringstringWithCString:systemInfo.machineencoding:NSUTF8StringEncoding];if([deviceMachine isEqualToString:@"i386"] || [deviceMachine isEqualToString:@"x86_64"]) {returnYES; }returnNO;}
3.Touch ID指纹验证
[contextevaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"请验证已有指纹"reply:^(BOOLsuccess, NSError * _Nullable error){ if(error){ NSLog(@"验证失败"); // 系统会自动给错误提示}else{ dispatch_async(dispatch_get_main_queue(), ^{ // 验证成功,进行相关操作 });} }];
PS:如果验证失败的话,系统会给出相应的提示,如图
验证失败
源码下载
github源码下载
文/Monkey_ALin(作者)
原文链接:http://www.jianshu.com/p/1d0e5c43b44d
著作权归作者所有,转载请联系作者获得授权,并标注“作者”。