iOS开发——Touch ID 指纹识别
项目中为了安全性,一般使用密码或iPhone手机的指纹识别Touch ID。
第一步,判断系统是否支持,iOS8.0及以上才支持。
第二步,判断手机是否支持,带Touch ID的手机iPhone5s及以上才支持。
代码如下:
- - (void)openTouchID{
- if ([UIDevice currentDevice].systemVersion.floatValue < 8.0) {
- NSLog(@"系统版本过低,不支持");
- return;
- }
- //创建安全验证对象
- LAContext * ctx = [[LAContext alloc]init];
- //判断是否支持密码验证
- /**
- *LAPolicyDeviceOwnerAuthentication 手机密码的验证方式
- *LAPolicyDeviceOwnerAuthenticationWithBiometrics 指纹的验证方式
- */
- BOOL isEnable = [ctx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:NULL];
- if (isEnable) {
- ctx.localizedFallbackTitle = @""; // 去掉错误时显示【输入密码】
- [ctx evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"指纹验证" reply:^(BOOL success, NSError * _Nullable error) {
- if (success)
- {
- //输入成功 存储状态
- // NSString *keyF = [NSString stringWithFormat:@"%@fingerKey",userInfomation().userId];
- // [[NSUserDefaults standardUserDefaults] setObject:@"1" forKey:keyF];
- // [[NSUserDefaults standardUserDefaults] synchronize];
- NSLog(@"指纹验证成功");
- dispatch_async(dispatch_get_main_queue(), ^{
- // 进入风险评测
- });
- } else
- {
- // 失败
- dispatch_async(dispatch_get_main_queue(), ^{
- NSLog(@"指纹验证失败----");
- 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
- // 进入风险评测
- // [self enterRiskEvaluation];
- break;
- }
- case LAErrorAuthenticationFailed:
- {
- NSLog(@"指纹错误:LAErrorAuthenticationFailed");
- //切换到其他APP,系统取消验证Touch ID
- [self timesLimited];
- break;
- }
- case LAErrorPasscodeNotSet:
- {
- NSLog(@"指纹错误:LAErrorPasscodeNotSet");
- break;
- }
- case LAErrorTouchIDNotAvailable:
- {
- NSLog(@"指纹错误:LAErrorTouchIDNotAvailable");
- break;
- }
- case LAErrorTouchIDNotEnrolled:
- {
- NSLog(@"指纹错误:LAErrorTouchIDNotEnrolled");
- break;
- }
- case LAErrorTouchIDLockout:
- {
- NSLog(@"指纹错误:LAErrorTouchIDLockout");
- // [self timesLimited];
- break;
- }
- case LAErrorAppCancel:
- {
- NSLog(@"指纹错误:LAErrorAppCancel");
- break;
- }
- default:
- {
- // 次数受限
- // [self timesLimited];
- break;
- }
- }
- //......
- });
- }
- }];
- }else{
- // 密码验证的方式(不支持指纹) 可加弹窗提示
- NSLog(@"不支持指纹");
- }
- }
效果图如下:
iOS开发——Touch ID 指纹识别的更多相关文章
- iOS- Swift:指触即开,如何集成Touch ID指纹识别功能
1.前言 随着移动支付时代的到来,Touch ID 指纹验证迅速被支付宝,微信钱包普及,相信各位朋友使用后也大呼方便.之前写了篇关于iOS9的3D Touch的集成使用,有朋友在我博客下提到,让我写一 ...
- Touch ID指纹解锁使用
Touch ID是iPhone5S后加入的一项新的功能,也就是大家熟知的指纹识别技术.大家用得最多的可能是手机的解屏操作,不用在和以前一样输入手机的四位数密码进行验证.一方面不用担心密码被别人看到,另 ...
- iOS --- Touch ID指纹解锁
https://www.cnblogs.com/ljmaque/p/TouchID.html 最近在项目中刚好用到了TouchId指纹解锁功能,之前也没有接触过,立马百度看看究竟是要如何使用,发现其实 ...
- iOS 使用Touch ID 校验[新增 iOS9 三种错误]
iOS8后苹果开放了Touch ID的API给开发者,这也给我们的app带来了新的体验.开发者们可使用向第三方应用开放了Touch ID权限的API,以便他们在应用中使用指纹认证来完成用户认证或支付购 ...
- iOS 中 Touch ID得使用方法
iPhone 5S公布以后,iOS设备基本都有集成Touch ID.而这个功能对自己的App也是一个非常好的扩展,关于Touch ID的使用方法.大致例如以下, Swift: 引入LocalAuthe ...
- iOS开发中id、NSObject *、id、instancetype四者有什么区别?
在使用Objective-C语言进行iOS应用开发的时候,常常会涉及到id.NSObject *.id.instancetype这四个概念的使用,但这四者也是iOS初学者最易混淆的内容,下面小编看 ...
- iOS指纹识别Touch ID的安全性探讨
苹果公司在 iPhone 5s 的发布会上公布了全新的指纹识别安全技术,也就是 Touch ID,开创了生物安全识别技术在便携设备上使用的新篇章.此后,苹果还将此技术带到了 iPad 上.此前没有任何 ...
- Touch ID使用
前言:如果图片看不了请移步:简书 Touch ID简介 Touch ID指纹识别作为iPhone 5s上的"杀手级"功能早已为人们所熟知,目前搭载的设备有iphone SE.iPh ...
- iOS Touch Id 开发
Touch Id Touch Id是iPhone5S后加入的一项新的功能,也就是大家熟知的指纹识别技术.大家用得最多的可能是手机的解屏操作,不用在和以前一样输入手机的四位数密码进行验证.一方面不用担心 ...
随机推荐
- UVa572 Oil Deposits DFS求连通块
技巧:遍历8个方向 ; dr <= ; dr++) ; dc <= ; dc++) || dc != ) dfs(r+dr, c+dc, id); 我的解法: #include< ...
- Codeforces Bubble Cup 8 - Finals [Online Mirror] F. Bulbo DP
F. Bulbo Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/575/problem/F Des ...
- Windbg命令
(1)!runaway命令显示每个线程消费的时间 参考:http://blog.csdn.net/hgy413/article/details/7564252 (2)!wow64exts.sw 关闭6 ...
- delphi 带历史信息的菜单
带历史信息的菜单 实例说明 在有些软件中,菜单栏中可以记录已经打开过的文件信息,使用户操作简单.快捷.当用户要打开已打开过的文件时,不需要重复查找,只需选择菜单中打开过的文件,即可实现打开该文件的操作 ...
- struts2源代码学习之初始化(一)
看struts2源代码已有一段时日,从今天開始,就做一个总结吧. 首先,先看看怎么调试struts2源代码吧,主要是下面步骤: 使用Myeclipse创建一个webproject 导入struts2须 ...
- 命令行中使用adb安装apk
转载:http://blog.sina.com.cn/s/blog_8324d8e80101b8dn.html 在你的android—IDE中找到D:\Softwave_Ghost\技术软件\IDE\ ...
- cocos2d-x 3.0 alpha1 生成Qt qch帮助文档
Qt的助手挺好用的. 比chm好多了 cocos2d-x使用doxygen生成文档. 默认生成的是html形式, 需要打开浏览器, 这个是比较耗资源吧 可以修改配置, 让doxygen同时输出qch形 ...
- iptables常用命令
常规: iptables -t filter -A INPUT -d -p tcp --dport -j DROPiptables -A INPUT -m iprange --src-range 22 ...
- Android(java)学习笔记115:Android InputMethodManager输入法简介
正文 一.结构 public final class InputMethodManager extends Object Java.lang.Object android.view.inputmeth ...
- python(3)-内置函数
>>> abs(-1) #绝对值,小数也可以,不能是其它字符 1 >>> all([1,2,3,4,5,6,7]) #如果传入的列表所有元素都为真,则True Tr ...