1.前言  

随着移动支付时代的到来,Touch ID 指纹验证迅速被支付宝,微信钱包普及,相信各位朋友使用后也大呼方便。之前写了篇关于iOS9的3D Touch的集成使用,有朋友在我博客下提到,让我写一篇关于指纹解锁的blog,元旦结束后,立马前来向大家分享我的一点点拙见。

 
关于3D Touch 感兴趣的朋友可以看我前篇blog
 *    iOS- 指压即达,如何集成iOS9里的3D Touch
 
 

2.指纹验证Touch ID的介绍  

相比3D Touch来说,指纹验证Touch ID 的使用比较简单
主要分成两步
1.第一步当然是检测你的手机是否可以使用指纹识别(硬件配置)
2.第二步自然是识别你的指纹是否通过(苹果的指纹生物识别方式)
 
 
指纹验证通过的就不多说了,这里因为比较简单,就说说几种失败的情况
1.例如,在iPhone 4s,5上运行结果为:
com.apple.LocalAuthentication Code=-6 "Biometry is not available on this device.
 
2.例如,在模拟器
com.apple.LocalAuthentication Code=-1000 "Simulator is not supported.
 这上面两种是硬件配置
 
 
接下来还有几种需要注意是:指纹识别不通过,也就是指纹识别错误!
1.连续三次指纹识别错误
com.apple.LocalAuthentication Code=-1 "Aplication retry limit exceeded.
 
2.用户在Touch ID对话框中点击了取消按钮
com.apple.LocalAuthentication Code=-2 "Canceled by user.
 
 
3.Touch ID功能被锁定,下一次需要输入系统密码
com.apple.LocalAuthentication Code=-1 "Biometry is locked out.
 
4.用户在Touch ID对话框中点击输入密码按钮
com.apple.LocalAuthentication Code=-3 "Fallback authentication mechanism selected.
 
 

2.指纹验证Touch ID的实现  

好了,下面就直接上代码了,注释都给了较为详细的解释。

别忘了 import LocalAuthentication 框架

    override func viewDidLoad() {
super.viewDidLoad() //1.初始化TouchID句柄
let authentication = LAContext()
var error: NSError? //2.检查Touch ID是否可用
let isAvailable = authentication.canEvaluatePolicy(.DeviceOwnerAuthenticationWithBiometrics,
error: &error) //3.处理结果
if isAvailable
{
NSLog("Touch ID is available")
//这里是采用认证策略 LAPolicy.DeviceOwnerAuthenticationWithBiometrics
//--> 指纹生物识别方式
authentication.evaluatePolicy(.DeviceOwnerAuthenticationWithBiometrics, localizedReason: "这里需要您的指纹来进行识别验证", reply: {
//当调用authentication.evaluatePolicy方法后,系统会弹提示框提示用户授权
(success, error) -> Void in
if success
{
NSLog("您通过了Touch ID指纹验证!")
}
else
{
//上面提到的指纹识别错误
NSLog("您未能通过Touch ID指纹验证!错误原因:\n\(error)")
}
})
}
else
{
//上面提到的硬件配置
NSLog("Touch ID不能使用!错误原因:\n\(error)")
}
}

如果还有什么不太明白,欢迎留言。2016第一篇blog,祝各位新年快乐

作者: 清澈Saup
出处:http://www.cnblogs.com/qingche/
本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。

iOS- Swift:指触即开,如何集成Touch ID指纹识别功能的更多相关文章

  1. iOS开发——Touch ID 指纹识别

    项目中为了安全性,一般使用密码或iPhone手机的指纹识别Touch ID. 第一步,判断系统是否支持,iOS8.0及以上才支持. 第二步,判断手机是否支持,带Touch ID的手机iPhone5s及 ...

  2. iOS 8 中如何集成 Touch ID 功能

    2013年9月,苹果为当时发布的最新iPhone产品配备了一系列硬件升级方案.在iPhone 5s当中,最具创新特性的机制无疑要数围绕Home按钮设计的超薄金属圈,也就是被称为Touch ID的指纹传 ...

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

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

  4. iOS 。开发之指纹识别功能

    // 头文件导入 #import <LocalAuthentication/LocalAuthentication.h> //在iPhone5s的时候,苹果推出了指纹解锁.但是在ios8. ...

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

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

  6. iOS 中 Touch ID得使用方法

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

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

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

  8. Swift实现Touch ID验证

    iOS8开放了很多API,包括HomeKit.HealthKit什么的.我们这里要说的是其中之一的Touch ID验证. 以前用app保护用户的隐私内容,只能设定和输入密码.眼看着只能是iPhone本 ...

  9. iOS - TouchID 指纹识别

    前言 NS_CLASS_AVAILABLE(10_10, 8_0) @interface LAContext : NSObject 指纹识别功能是 iPhone 5s 推出的,SDK 是 iOS 8. ...

随机推荐

  1. JavaEE笔记(二)

    查询load()和get()的区别 # 以下查询都是根据id查询 // Load和Get都会在第一次查询的是创建一个一级缓存查询语句 // 下一次查询的时候从缓存中查询是否有缓存的语句 // 如果有只 ...

  2. 本地使用xshell连接本地虚拟机

    一.环境说明: 操作系统:win10 虚拟软甲:vmware破解版 终端工具:xshell 参考网址:[xshell连接本地虚拟机linux系统][注意事项][手动修改网络配置] 二.连接步骤: 1. ...

  3. Linux下开发python django程序

    一.安装django 1.#进入包文件夹下执行解压 tar zxvf Django-1.3.7.tar.gz 2#进入解压的文件夹执行安装 python setup.py install 3#安装成功 ...

  4. 洛谷 P2563 [AHOI2001]质数和分解

    洛谷  P2563 [AHOI2001]质数和分解 题目描述 任何大于 1 的自然数 n 都可以写成若干个大于等于 2 且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能 ...

  5. nginx配置转发详解

    nginx各项参数的详细配置 本文主要讲解nginx.conf中server部分配置及多路转发问题: server { listen 9090; server_name 127.0.0.1; #cha ...

  6. castle.dynamicProxy学习笔记

    目的: 可以将castle.dynamicProxy当成代码生成器,快速的生成自己想的代码.这个库经历了这么多年的测试,应该可以用了:D 概念: IInterceptor:拦截器 当方法(属性的本质是 ...

  7. FileDialog对象

    返回表示文件对话框实例的 FileDialog 对象. 语法 expression. FileDialog( _fileDialogType_ ) expression:表示 Application  ...

  8. AndroidStudio更改包名

    最近开发一个项目 和以前开发的某一个功能类似 不想再重新搭建界面 从零开始去写... 就想把原来的项目copy一份 但是这样的话安装在手机中会把原来的项目覆盖掉 这是因为它们的applicationI ...

  9. Charles 抓包使用教程

    将 Charles 设置成系统代理 Charles 主界面介绍 过滤网络请求 截取 iPhone 上的网络封包 截取 Https 通讯信息 模拟慢速网络 修改网络请求内容 给服务器做压力测试 修改服务 ...

  10. Go简单聊天

    用Go简单实现网络通信 其余功能可以在这个模型上继续加,比如增加通信人数,实现聊天 server 端 package main import ( "fmt" "log&q ...