iOS指纹处理,登录,支付or 其他
来源:互联网 发布:node pm2 全局安装 编辑:程序博客网 时间:2024/05/01 22:10
随便给个点击事件,或者在viewDidLoad 中调用一下
先来个最简单粗暴的例子..
包含头文件
#import <LocalAuthentication/LocalAuthentication.h>
- (IBAction)loginWithTouchID:(id)sender { //步骤1:检查Touch ID是否可用 LAContext * context = [[LAContext alloc] init]; BOOL canUseTouchID = [context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil] ; if (canUseTouchID) { [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"验证密码登录" reply:^(BOOL success, NSError * _Nullable error) { NSLog(@"[NSThread currentThread] %@",[NSThread currentThread]) ; dispatch_async(dispatch_get_main_queue(), ^{ if (success) { NSLog(@"验证成功,可以登录"); [self showHudWithText:@"验证成功,正在登录..."] ; self.nameField.text = @"guocs1016" ; self.passField.text = @"qqq" ; [self loginClick:nil] ; //登录\支付\或者你想要的替换这里就行了 }else { [self showHudWithText:@"验证失败,重试"] ; NSLog(@"验证失败,重试") ; } }); }]; }else { NSLog(@"无法验证指纹,不能使用touchID"); }}
这里是详细介绍
上面的代码首先创建了一个LAContext实例,用于执行认证策略(Authentication Policies)。然后在该对象上调用canEvaluatePolicy方法执行某个指定的认证策略,其方法签名为:
LAPolicy枚举目前只有一个枚举值.DeviceOwnerAuthenticationWithBiometrics,即使用指纹生物识别方式来认证设备机主。
注意到canEvaluatePolicy方法返回的是Bool值,表示指定的认证策略是否允许执行。当方法返回false时,可以通过error对象来获取详细的失败原因。失败的情况可能是设备本身不支持,例如旧版本的iPhone与iPad;运行在模拟器上;或者用户未开启Touch ID功能等。例如,在iPhone 5上运行结果为:
在模拟器上的运行结果为:当允许使用Touch ID后,可以接着调用evaluatePolicy方法执行指定的认证策略,方法签名为:
调用该方法将弹出系统调用Touch ID的对话框,其中的localizedReason参数用于在对话框中提示用户详细的理由和原因(应言简意赅,但不可为空或者空串)。reply参数是一个Block,其中的Bool类型参数success表示指纹验证是否通过,当失败时error参数包含了具体的失败信息。这里有很多种失败的情况(我自己只测试出了以下5种情况,如有遗漏还请告知):
1. 连续三次指纹识别错误的运行结果:
2. Touch ID功能被锁定,下一次需要输入系统密码时的运行结果:3. 用户在Touch ID对话框中点击了取消按钮:4. 在Touch ID对话框显示过程中,背系统取消,例如按下电源键:5. 用户在Touch ID对话框中点击输入密码按钮:通过这个简单的例子,相信您已经了解如何在您的App中添加指纹识别功能了。
0 0
- iOS指纹处理,登录,支付or 其他
- iOS指纹登录
- ios 微信越狱使用指纹支付插件
- TouchID 指纹登录
- Win7指纹登录问题
- ios-处理登录
- Xposed指纹支付插件 安卓版
- 仿ios网易支付登录特效
- ios 指纹登陆
- iOS 指纹解锁
- iOS TouchID指纹验证
- iOS 指纹解锁
- iOS 指纹解锁
- iOS 指纹验证
- iOS指纹解锁
- iOS指纹解锁
- ios开发指纹解锁
- iOS指纹解锁Swift
- emmc field firmware update
- Spark升级到2.0后测试stream-kafka测试报java.lang.NoClassDefFoundError: org/apache/spark/Logging错误
- TCP连接的三次握手和四次挥手
- OpenCV3.1.0+VS2013开发环境配置
- DrawerLayout的简单使用
- iOS指纹处理,登录,支付or 其他
- 【C++学习】GPU编程的简单学习
- 彻底明白Android中AIDL及其使用
- #还是学点东西#
- 类模板的全特化和偏特化
- GPS开发
- GitHub基础学习-创建GitHub账号并在GitHub上创建仓库
- javascript:;与javascript:void(0)使用介绍
- 浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路