Touch ID是iPhone5S后加入的一项新的功能,也就是大家熟知的指纹识别技术。大家用得最多的可能是手机的解屏操作,不用在和以前一样输入手机的四位数密码进行验证。一方面不用担心密码被别人看到,另一方面也方便了自己的操作。iOS8后苹果开放了Touch ID的API给开发者,这也给我们的app带来了新的体验。

使用

Touch ID的API非常的简单也好理解,在使用前我们需要导入LocalAuthentication这个库。并引入关键模块:LAcontext

苹果公司并没有对Touch ID完全开放,只是开放了如下所的两个接口

(1) canEvaluatePolicy:error: 判读是否能够认证Touch ID

(2) evaluatePolicy:localizedReson:reply: 认证Touch ID

关键代码如下

LAContext * myContext = [[LAContext alloc]init];

NSError * authError = nil;

NSString * myLocatizedReasonString = @"请扫描你的指纹.";

if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {

[myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:myLocatizedReasonString reply:^(BOOL success, NSError * _Nullable error) {

if (success) {

dispatch_async (dispatch_get_main_queue(), ^{

//在主线程更新 UI,不然会卡主

TouchViewController * touchVC = [[TouchViewController alloc]init];

[self.navigationController pushViewController:touchVC animated:YES];

});

}

if (!success) {

NSLog(@"%@",error);

}

}];

}

错误处理

typedef NS_ENUM(NSInteger, LAError)

{

//用户验证没有通过,比如提供了错误的手指的指纹

LAErrorAuthenticationFailed = kLAErrorAuthenticationFailed,

// 用户取消了Touch ID验证

LAErrorUserCancel  = kLAErrorUserCancel,

//用户不想进行Touch ID验证,想进行输入密码操作

LAErrorUserFallback  = kLAErrorUserFallback,

// 系统终止了验证

LAErrorSystemCancel = kLAErrorSystemCancel,

// 用户没有在设备Settings中设定密码

LAErrorPasscodeNotSet = kLAErrorPasscodeNotSet,

// 设备不支持Touch ID

LAErrorTouchIDNotAvailable  = kLAErrorTouchIDNotAvailable,

// 设备没有进行Touch ID 指纹注册

LAErrorTouchIDNotEnrolled   = kLAErrorTouchIDNotEnrolled,

} NS_ENUM_AVAILABLE(10_10, 8_0);

Touch ID指纹解锁使用的更多相关文章

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

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

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

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

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

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

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

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

  5. Touch ID使用

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

  6. Touch ID和Passcode框架,Apple Watch风格的应用布局

    本文转载至 http://www.cocoachina.com/ios/20141031/10110.html 水平滚动条(artwalk) 测试环境:Xcode 6.0,iOS 8.0     VE ...

  7. iOS Touch Id 开发

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

  8. 微信将推指纹支付 "指付通"会与Touch ID整合吗

    有消息称微信下一版本将推指纹支付“指付通”,解决手机丢失资金安全的问题(这个应该是针对阿里手机支付的弱点),到时候用户绑定的银行卡进行付款时,不用输入密码只需在专门的支付设备(苹果Touch ID ? ...

  9. 苹果5S指纹扫描识别传感器Touch ID有利于iPhone的安全性

    iPhone5S新增的指纹扫描识别传感器 Touch ID,黑客花了大量的时间表明指纹验证是可以被破解的.即使它可能被黑客攻击,对iPhone5S的安全性而言,仍然具有极大的好处. 为什么一个容易被破 ...

随机推荐

  1. 对iOS中MVC的理解

    总结于斯坦福大学的白头发老头的公开课 模型-控制器-视图(MVC)是一种将应用中给所有类组织起来的策略 模型(Model)实际上考虑的是“什么”的问题,即你的程序是什么? 以纸牌匹配游戏为例子,模型就 ...

  2. asp.net中使用swfupload上传大文件

    转载:http://www.cnblogs.com/niunan/archive/2012/01/12/2320705.html 花了一天多时间研究出来的,其实也就是网上下别人的代码然后再自己修修改改 ...

  3. java foreach编辑讲解

    foreach语句使用总结 foreach语句是java5的新特征之一,在遍历数组.集合方面,foreach为开发人员提供了极大的方便. foreach语句是for语句的特殊简化版本,但是foreac ...

  4. PS常见错误-无法完成请求,因为文件格式模块不能解析该文件

    无法完成请求,因为文件格式模块不能解析该文件 将图片格式变成.jpg格式就可以了

  5. Python标准库:迭代器Itertools

    Infinite Iterators: Iterator Arguments Results Example count() start, [step] start, start+step, star ...

  6. Adobe Texture Format

    ATF : Adobe Texture Format. 这是一种能提供最佳压缩效果的文件格式. ATF文件主要是一个存储有损纹理数据(lossy texture data)的文件容器.它主要使用了两种 ...

  7. typedef 优于 #define

    案例一: 通常讲,typedef要比#define要好,特别是在有指针的场合.请看例子: typedef char *pStr1; #define pStr2 char *; pStr1 s1, s2 ...

  8. 标准库类型vector

    标准库类型vector表示对象的集合,其中所有对象的类型都相同.集合中的每个对象都有一个与之对应的索引,索引用于访问对象.因为vector“容纳着”其他对象,所以它被称为容器. 要想使用vector, ...

  9. dubbo-RPC学习(一)自定义配置

    在dubbo的基础上实现异步调用的时候,因为需要支持回调的“重试间隔时间”与“重试次数”等属性.因此,需要扩展dubbo.xsd,需要添加新的属性来支持这种扩展. dubbo 的xsd是基于sprin ...

  10. 线程控制之线程和I/O

    http://www.cnblogs.com/nufangrensheng/p/3498723.html中介绍了pread和pwrite函数,这些函数在多线程环境下是非常有帮助的,因为进程中的所有线程 ...