Touch ID 简易教程
来源:互联网 发布:java作业汽车租赁系统 编辑:程序博客网 时间:2024/05/16 20:51
基础知识
支持系统和机型
iOS系统的指纹识别功能最低支持的机型为iPhone 5s,最低支持系统为iOS 8,虽然安装iOS 7系统的5s机型可以使用系统提供的指纹解锁功能,但由于API并未开放,所以理论上第三方软件不可使用。
依赖框架
LocalAuthentication.framework#import <LocalAuthentication/LocalAuthentication.h>
注意事项
做iOS 8以下版本适配时,务必进行API验证,避免调用相关API引起崩溃。
if(iOS8){xxx} // 系统版本验证if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError])
使用类
LAContext指纹验证操作对象
操作流程
• 判断系统版本,iOS 8及以上版本执行-(void)authenticateUser方法,
• 方法自动判断设备是否支持和开启Touch ID。
代码示例
<p class="p1"><span class="s1">#define <span style="font-family: Arial, Helvetica, sans-serif;">iOS8later </span>([UIDevice currentDevice].systemVersion.doubleValue >= </span><span class="s2">8.0</span><span class="s1">)</span></p>
- (IBAction)showTouchIDAlert:(id)sender { // 1.判断是否是iOS8之后 if (!iOS8later) { NSLog(@"版本不对不能使用TouchID"); return; } // 2.调用touchID的相关方法 [self authenticateUser];}// 鉴定用户- (void)authenticateUser{ // 创建指纹验证对象 LAContext *context = [[LAContext alloc] init]; NSError *yfError = nil; // 验证设备是否支持touchID // LAPolicyDeviceOwnerAuthenticationWithBiometrics 14年时候枚举只有这一个属性 // LAPolicyDeviceOwnerAuthentication 后来加的枚举属性 if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&yfError]) { // 支持touchID [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"支付宝指纹验证" reply:^(BOOL success, NSError * _Nullable error) { if (success) { // touchID验证成功 // 继续处理相关业务(注意线程) }else { NSLog(@"%@",error.localizedDescription); switch (error.code) { case LAErrorSystemCancel: { NSLog(@"Authentication was cancelled by the system"); //切换到其他APP,系统取消验证Touch ID break; } case LAErrorUserCancel: { NSLog(@"Authentication was cancelled by the user"); //用户取消验证Touch ID break; } case LAErrorUserFallback: { NSLog(@"User selected to enter custom password"); [[NSOperationQueue mainQueue] addOperationWithBlock:^{ //用户选择输入密码,切换主线程处理 }]; break; } default: { [[NSOperationQueue mainQueue] addOperationWithBlock:^{ //其他情况,切换主线程处理 }]; break; } } } }]; }else { switch (yfError.code) { case LAErrorTouchIDNotEnrolled: NSLog(@"LAErrorTouchIDNotEnrolled"); break; case LAErrorPasscodeNotSet: NSLog(@"LAErrorPasscodeNotSet"); // 此处触发showPasscodeResetAlert方法 break; default: NSLog(@"Touch ID is unaviliable"); break; } NSLog(@"%@", yfError.localizedDescription); }}/* typedef NS_ENUM(NSInteger, LAError) { //授权失败 LAErrorAuthenticationFailed = kLAErrorAuthenticationFailed, //用户取消Touch ID授权 LAErrorUserCancel = kLAErrorUserCancel, //用户选择输入密码 LAErrorUserFallback = kLAErrorUserFallback, //系统取消授权(例如其他APP切入) LAErrorSystemCancel = kLAErrorSystemCancel, //系统未设置密码 LAErrorPasscodeNotSet = kLAErrorPasscodeNotSet, //设备Touch ID不可用,例如未打开 LAErrorTouchIDNotAvailable = kLAErrorTouchIDNotAvailable, //设备Touch ID不可用,用户未录入 LAErrorTouchIDNotEnrolled = kLAErrorTouchIDNotEnrolled, } NS_ENUM_AVAILABLE(10_10, 8_0); */
0 0
- Touch ID 简易教程
- iOS Touch ID 简易开发教程
- iOS---Touch ID于密码的简易开发教程
- iOS---Touch ID于密码的简易开发教程
- iOS---Touch ID于密码的简易开发教程
- iOS---Touch ID于密码的简易开发教程
- Touch ID
- Touch ID
- iOS8 touch id
- iOS Touch ID
- Touch ID身份认证
- Touch ID 的使用
- Touch ID简单使用
- IOS 之Touch ID
- iOS - Touch ID
- Touch ID使用
- Touch ID指纹识别功能
- 简易教程
- JS如何调用CSS样式表
- angularJs ng-show命令隐藏
- Android--RxJava源码初探
- 剑指offer--面试题45: 孩子们的游戏(圆圈中最后剩下的数)
- H5项目常见问题及注意事项
- Touch ID 简易教程
- poj 2395
- Java 8的新特性—终极版
- 华为oj之质数因子
- jsp里的逻辑语句c:if和c:choose
- MAMP下改网站根目录使用域名重定向
- maven搭建ssm项目(入门)
- 利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
- <转>简单易懂的Git使用教程