项目中为了安全性,一般使用密码或iPhone手机的指纹识别Touch ID。

第一步,判断系统是否支持,iOS8.0及以上才支持。

第二步,判断手机是否支持,带Touch ID的手机iPhone5s及以上才支持。

代码如下:

  1. - (void)openTouchID{
  2.  
  3. if ([UIDevice currentDevice].systemVersion.floatValue < 8.0) {
  4.  
  5. NSLog(@"系统版本过低,不支持");
  6. return;
  7. }
  8.  
  9. //创建安全验证对象
  10. LAContext * ctx = [[LAContext alloc]init];
  11.  
  12. //判断是否支持密码验证
  13. /**
  14. *LAPolicyDeviceOwnerAuthentication 手机密码的验证方式
  15. *LAPolicyDeviceOwnerAuthenticationWithBiometrics 指纹的验证方式
  16. */
  17. BOOL isEnable = [ctx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:NULL];
  18. if (isEnable) {
  19. ctx.localizedFallbackTitle = @""; // 去掉错误时显示【输入密码】
  20. [ctx evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"指纹验证" reply:^(BOOL success, NSError * _Nullable error) {
  21.  
  22. if (success)
  23. {
  24. //输入成功 存储状态
  25. // NSString *keyF = [NSString stringWithFormat:@"%@fingerKey",userInfomation().userId];
  26. // [[NSUserDefaults standardUserDefaults] setObject:@"1" forKey:keyF];
  27. // [[NSUserDefaults standardUserDefaults] synchronize];
  28.  
  29. NSLog(@"指纹验证成功");
  30. dispatch_async(dispatch_get_main_queue(), ^{
  31.  
  32. // 进入风险评测
  33.  
  34. });
  35.  
  36. } else
  37. {
  38. // 失败
  39. dispatch_async(dispatch_get_main_queue(), ^{
  40. NSLog(@"指纹验证失败----");
  41.  
  42. NSLog(@"%@",error.localizedDescription);
  43. switch (error.code) {
  44. case LAErrorSystemCancel:
  45. {
  46. NSLog(@"Authentication was cancelled by the system");
  47. //切换到其他APP,系统取消验证Touch ID
  48. break;
  49. }
  50. case LAErrorUserCancel:
  51. {
  52. NSLog(@"Authentication was cancelled by the user");
  53. //用户取消验证Touch ID
  54. // 进入风险评测
  55. // [self enterRiskEvaluation];
  56.  
  57. break;
  58. }
  59. case LAErrorAuthenticationFailed:
  60. {
  61. NSLog(@"指纹错误:LAErrorAuthenticationFailed");
  62. //切换到其他APP,系统取消验证Touch ID
  63. [self timesLimited];
  64. break;
  65. }
  66. case LAErrorPasscodeNotSet:
  67. {
  68. NSLog(@"指纹错误:LAErrorPasscodeNotSet");
  69.  
  70. break;
  71. }
  72. case LAErrorTouchIDNotAvailable:
  73. {
  74. NSLog(@"指纹错误:LAErrorTouchIDNotAvailable");
  75.  
  76. break;
  77. }
  78. case LAErrorTouchIDNotEnrolled:
  79. {
  80. NSLog(@"指纹错误:LAErrorTouchIDNotEnrolled");
  81.  
  82. break;
  83. }
  84. case LAErrorTouchIDLockout:
  85. {
  86. NSLog(@"指纹错误:LAErrorTouchIDLockout");
  87.  
  88. // [self timesLimited];
  89. break;
  90. }
  91.  
  92. case LAErrorAppCancel:
  93. {
  94. NSLog(@"指纹错误:LAErrorAppCancel");
  95.  
  96. break;
  97. }
  98. default:
  99. {
  100. // 次数受限
  101. // [self timesLimited];
  102. break;
  103. }
  104. }
  105.  
  106. //......
  107.  
  108. });
  109.  
  110. }
  111.  
  112. }];
  113.  
  114. }else{
  115.  
  116. // 密码验证的方式(不支持指纹) 可加弹窗提示
  117. NSLog(@"不支持指纹");
  118.  
  119. }
  120.  
  121. }

效果图如下:

iOS开发——Touch ID 指纹识别的更多相关文章

  1. iOS- Swift:指触即开,如何集成Touch ID指纹识别功能

    1.前言 随着移动支付时代的到来,Touch ID 指纹验证迅速被支付宝,微信钱包普及,相信各位朋友使用后也大呼方便.之前写了篇关于iOS9的3D Touch的集成使用,有朋友在我博客下提到,让我写一 ...

  2. Touch ID指纹解锁使用

    Touch ID是iPhone5S后加入的一项新的功能,也就是大家熟知的指纹识别技术.大家用得最多的可能是手机的解屏操作,不用在和以前一样输入手机的四位数密码进行验证.一方面不用担心密码被别人看到,另 ...

  3. iOS --- Touch ID指纹解锁

    https://www.cnblogs.com/ljmaque/p/TouchID.html 最近在项目中刚好用到了TouchId指纹解锁功能,之前也没有接触过,立马百度看看究竟是要如何使用,发现其实 ...

  4. iOS 使用Touch ID 校验[新增 iOS9 三种错误]

    iOS8后苹果开放了Touch ID的API给开发者,这也给我们的app带来了新的体验.开发者们可使用向第三方应用开放了Touch ID权限的API,以便他们在应用中使用指纹认证来完成用户认证或支付购 ...

  5. iOS 中 Touch ID得使用方法

    iPhone 5S公布以后,iOS设备基本都有集成Touch ID.而这个功能对自己的App也是一个非常好的扩展,关于Touch ID的使用方法.大致例如以下, Swift: 引入LocalAuthe ...

  6. iOS开发中id、NSObject *、id、instancetype四者有什么区别?

      在使用Objective-C语言进行iOS应用开发的时候,常常会涉及到id.NSObject *.id.instancetype这四个概念的使用,但这四者也是iOS初学者最易混淆的内容,下面小编看 ...

  7. iOS指纹识别Touch ID的安全性探讨

    苹果公司在 iPhone 5s 的发布会上公布了全新的指纹识别安全技术,也就是 Touch ID,开创了生物安全识别技术在便携设备上使用的新篇章.此后,苹果还将此技术带到了 iPad 上.此前没有任何 ...

  8. Touch ID使用

    前言:如果图片看不了请移步:简书 Touch ID简介 Touch ID指纹识别作为iPhone 5s上的"杀手级"功能早已为人们所熟知,目前搭载的设备有iphone SE.iPh ...

  9. iOS Touch Id 开发

    Touch Id Touch Id是iPhone5S后加入的一项新的功能,也就是大家熟知的指纹识别技术.大家用得最多的可能是手机的解屏操作,不用在和以前一样输入手机的四位数密码进行验证.一方面不用担心 ...

随机推荐

  1. UVa572 Oil Deposits DFS求连通块

      技巧:遍历8个方向 ; dr <= ; dr++) ; dc <= ; dc++) || dc != ) dfs(r+dr, c+dc, id); 我的解法: #include< ...

  2. 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 ...

  3. Windbg命令

    (1)!runaway命令显示每个线程消费的时间 参考:http://blog.csdn.net/hgy413/article/details/7564252 (2)!wow64exts.sw 关闭6 ...

  4. delphi 带历史信息的菜单

    带历史信息的菜单 实例说明 在有些软件中,菜单栏中可以记录已经打开过的文件信息,使用户操作简单.快捷.当用户要打开已打开过的文件时,不需要重复查找,只需选择菜单中打开过的文件,即可实现打开该文件的操作 ...

  5. struts2源代码学习之初始化(一)

    看struts2源代码已有一段时日,从今天開始,就做一个总结吧. 首先,先看看怎么调试struts2源代码吧,主要是下面步骤: 使用Myeclipse创建一个webproject 导入struts2须 ...

  6. 命令行中使用adb安装apk

    转载:http://blog.sina.com.cn/s/blog_8324d8e80101b8dn.html 在你的android—IDE中找到D:\Softwave_Ghost\技术软件\IDE\ ...

  7. cocos2d-x 3.0 alpha1 生成Qt qch帮助文档

    Qt的助手挺好用的. 比chm好多了 cocos2d-x使用doxygen生成文档. 默认生成的是html形式, 需要打开浏览器, 这个是比较耗资源吧 可以修改配置, 让doxygen同时输出qch形 ...

  8. iptables常用命令

    常规: iptables -t filter -A INPUT -d -p tcp --dport -j DROPiptables -A INPUT -m iprange --src-range 22 ...

  9. Android(java)学习笔记115:Android InputMethodManager输入法简介

    正文 一.结构 public final class InputMethodManager extends Object Java.lang.Object android.view.inputmeth ...

  10. python(3)-内置函数

    >>> abs(-1) #绝对值,小数也可以,不能是其它字符 1 >>> all([1,2,3,4,5,6,7]) #如果传入的列表所有元素都为真,则True Tr ...