iOS---Touch ID于密码的简易开发教程
来源:互联网 发布:消防球 淘宝 编辑:程序博客网 时间:2024/05/17 09:30
支持系统和机型:
iOS系统的指纹识别功能最低支持的机型为iPhone 5s
,最低支持系统为iOS 8
,虽然安装iOS 7
系统的5s机型可以使用系统提供的指纹解锁功能,但由于API
并未开放,所以理论上第三方软件不可使用。
依赖框架:
LocalAuthentication.framework#import <LocalAuthentication/LocalAuthentication.h>
注意事项:做iOS 8
以下版本适配时,务必进行API验证,避免调用相关API引起崩溃。
使用类:LAContext
指纹验证操作对象
代码:
- (void)authenticateUser{ //初始化上下文对象 LAContext* context = [[LAContext alloc] init]; //错误对象 NSError* error = nil; NSString* result = @"Authentication is needed to access your notes."; //首先使用canEvaluatePolicy 判断设备支持状态 if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) { //支持指纹验证 [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:result reply:^(BOOL success, NSError *error) { if (success) { //验证成功,主线程处理UI } 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 { //不支持指纹识别,LOG出错误详情 switch (error.code) { case LAErrorTouchIDNotEnrolled: { NSLog(@"TouchID is not enrolled"); break; } case LAErrorPasscodeNotSet: { NSLog(@"A passcode has not been set"); break; } default: { NSLog(@"TouchID not available"); break; } } NSLog(@"%@",error.localizedDescription); [self showPasswordAlert]; }}
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);
操作流程:首先判断系统版本,iOS 8
及以上版本执行-(void)authenticateUser
方法,方法自动判断设备是否支持和开启Touch ID
。
0 0
- iOS---Touch ID于密码的简易开发教程
- iOS---Touch ID于密码的简易开发教程
- iOS---Touch ID于密码的简易开发教程
- iOS---Touch ID于密码的简易开发教程
- iOS Touch ID 简易开发教程
- Touch ID 简易教程
- iOS开发中Touch ID的使用
- ios的touch ID 验证开发
- iOS开发Touch ID的简单使用
- iOS开发中 Touch ID的使用
- iOS开发之Touch ID指纹验证
- iOS开发——Touch ID 指纹识别
- IOS-Touch ID的简单使用
- iOS之Touch ID的使用
- iOS Touch ID
- IOS 之Touch ID
- iOS - Touch ID
- IOS 3D Touch 开发教程
- 如何在脚本中调用该对象的component
- iOS开发UI篇—字典转模型
- POJ题目翻译前言
- 《Head First 设计模式》之命令模式
- 集合的辨析,set,list,map的不同之处
- iOS---Touch ID于密码的简易开发教程
- 无法创建非系统盘符下的临时目录
- MyEclipse数据库教程:查看和编辑数据表
- 摇一摇
- 数据库 SQL千万级数据规模处理概要
- iText操作PDF学习(三)
- js如何实现继承
- DaikonForge
- 怎么把PDF转换成word而不乱码