iOS 开发系列之在应用中添加TouchID 验证身份
2016-04-26 13:33
302 查看
iOS 8 SDK公开了Touch ID指纹识别功能,允许APP能够在自己的应用中通过指纹识别功能进行身份验证,指纹识别的依赖库是LocalAuthentication framework, 如果应用中需要身份验证的话,首先需要导入LocalAuthentication framework。
以下是一个demo ,通过button的点击事件来验证指纹密码
1.在storyboard拖放button,并设置点击事件
2.在项目中引入LocalAuthentication framework
3.在类中 引入 头文件LocalAuthentication.h
4.button的点击事件
5.验证失败的error code有以下几种情况,在不同的情况下回调
error.code == kLAErrorUserFallback 在第一次指纹失败,让在试一次时alert会有两个按钮,取消或者是上边定义的context.localizedFallbackTitle,如果点击alert右边的按钮会进入这个if分支
error.code == kLAErrorUserCancel 用户点击取消按钮
kLAErrorAuthenticationFailed 连续三次指纹错误
kLAErrorSystemCancel 在Touch ID对话框的显示过程中,被系统取消
kLAErrorPasscodeNotSet
kLAErrorTouchIDNotAvailable
kLAErrorTouchIDNotEnrolled
kLAErrorTouchIDLockout
kLAErrorAppCancel
kLAErrorInvalidContext
以下是一个demo ,通过button的点击事件来验证指纹密码
1.在storyboard拖放button,并设置点击事件
2.在项目中引入LocalAuthentication framework
3.在类中 引入 头文件LocalAuthentication.h
4.button的点击事件
- (IBAction)touchIdAction:(id)sender { LAContext *context = [LAContext new]; NSError *error; //当指纹识别错误时,让再试一次,alert右边按钮的title,默认情况下是“enter the password”,如果设置为空的话就不显示,左边按钮是取消 context.localizedFallbackTitle = @"输入登录密码"; //canEvaluatePolicy 返回值Bool,用来判断设备是否支持Touch ID if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) { NSLog(@"canEvaluatePolicy设备支持Touch ID"); //evaluatePolicy 验证Touch ID [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:NSLocalizedString(@"通过Home键验证已有手机指纹", nil) reply:^(BOOL success, NSError * _Nullable error) { NSLog(@"evaluetePlolicy"); if (success) { NSLog(@"evaluatePolicy success TouchID验证成功"); //验证成功后续操作 } else { NSLog(@"evaluatePolicy failure TouchID验证失败"); if (error.code == kLAErrorUserFallback) { NSLog(@"error user fall back"); } else if (error.code == kLAErrorUserCancel) { NSLog(@"error user cancel"); } else { NSLog(@"Authenticated fail"); } } }]; } else { NSLog(@"can not evaluatePolicy设备不支持TouchID"); } }
5.验证失败的error code有以下几种情况,在不同的情况下回调
error.code == kLAErrorUserFallback 在第一次指纹失败,让在试一次时alert会有两个按钮,取消或者是上边定义的context.localizedFallbackTitle,如果点击alert右边的按钮会进入这个if分支
error.code == kLAErrorUserCancel 用户点击取消按钮
kLAErrorAuthenticationFailed 连续三次指纹错误
kLAErrorSystemCancel 在Touch ID对话框的显示过程中,被系统取消
kLAErrorPasscodeNotSet
kLAErrorTouchIDNotAvailable
kLAErrorTouchIDNotEnrolled
kLAErrorTouchIDLockout
kLAErrorAppCancel
kLAErrorInvalidContext
相关文章推荐
- iOS集成友盟分享时的一些问题
- ios十进制、十六进制字符串,byte,data等之间的转换
- IOS适配-快速适配篇
- IOS适配-原理篇
- iOS系统函数执行顺序
- iOS8初探 - Size Class
- iOS组件封装的思路和实现
- Facebook iOS 应用是如何加速图片显示的?
- iOS界面卡顿之离屏渲染
- 话谈 iOS 目录结构的划分
- JS传递数据给IOS Android
- 整理iOS9适配中出现的坑(图文)
- 在 iOS创建 第一个Cordova 项目
- ios 审核加急快速上架
- iOS 视图颜色渐变详解
- 【转】IOS缓存机制详解
- iOS自带扫描和生成二维码
- 使用 Wax 修复 iOS 应用的线上 Bug
- iOS 将服务器下载下来的db文件和本地的db文件合并后保存
- iOS 使用学习笔记1