iOS开发中Touch ID的使用
来源:互联网 发布:淘宝哪里修改评价 编辑:程序博客网 时间:2024/05/18 02:18
从2013年的iPhone 5s开始苹果就引入了Touch ID,之后Touch ID基本上成了苹果设备的标配,iOS 8起,开发者就可以调用API在自己的应用中添加Touch ID验证功能了,国内常见的第三方应用比如支付宝,也逐渐引入了对Touch ID的支持。
接下来我将讲一下怎样在自己的应用中添加对Touch ID的支持。
一、导入LocalAuthentication.framework
Touch ID是基于LocalAuthentication.framework这个框架的,但我们新建的工程里默认是没有导入这个框架,所以需要我们手工导入,直接上图
光导入了还没有结束,我们还需要在自己的文件上面import,就像import UIKit一样
import LocalAuthentication
但是我们还要注意一点,有的设备是不支持Touch ID的,比如iPhone 5s之前的设备和前几代iPad,所以我们需要通过这个函数来验证一下当前设备是否支持Touch ID
canEvaluatePolicy(_:error:)
下面这个是完成Touch ID验证功能的示例代码,可以在你LoginViewController里面修改后调用,具体功能的解释都在注释里面了,非常简单
func authenticateWithTouchID() { //获得引入的LocalAuthentication框架的Context let localAuthContext = LAContext() let reasonText = "Authentication is required to sign in AppCoda" var authError: NSError? if !localAuthContext.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error: &authError) { // 代码执行到这里说明当前设备不支持Touch ID return } // 进行Touch ID验证 localAuthContext.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: reasonText, reply: { (success: Bool, error: NSError?) -> Void in if success { // 处理成功的情况,这段示例代码里面采用异步完成页面跳转 NSOperationQueue.mainQueue().addOperationWithBlock({ self.performSegueWithIdentifier("showHomeScreen", sender: nil) }) } else { // 显示各种错误提示 switch error!.code { case LAError.AuthenticationFailed.rawValue: print("Authentication failed") case LAError.PasscodeNotSet.rawValue: print("Passcode not set") case LAError.SystemCancel.rawValue: print("Authentication was canceled by system") case LAError.UserCancel.rawValue: print("Authentication was canceled by the user") case LAError.TouchIDNotEnrolled.rawValue: print("Authentication could not start because Touch ID has no enrolled fingers.") case LAError.TouchIDNotAvailable.rawValue: print("Authentication could not start because Touch ID is not available.") case LAError.UserFallback.rawValue: print("User tapped the fallback button (Enter Password).") default: print(error!.localizedDescription) } // 如果最后没有成功通过Touch ID验证,则调用另外的函数来进行密码验证,下面的代码实现了异步弹出手工输入密码的自定义对话框 NSOperationQueue.mainQueue().addOperationWithBlock({ self.showLoginDialog() }) } }) }
0 0
- iOS开发中Touch ID的使用
- iOS开发中 Touch ID的使用
- iOS开发Touch ID的简单使用
- iOS 中Touch ID(指纹识别技术) 的使用
- ios的touch ID 验证开发
- IOS-Touch ID的简单使用
- iOS之Touch ID的使用
- Touch ID 的使用
- iOS Touch ID 使用详情
- 在iOS 8 SDK中使用Touch ID API(下)
- 在iOS 8 SDK中使用Touch ID API
- 在iOS 8 SDK中使用Touch ID API
- iOS---Touch ID于密码的简易开发教程
- iOS---Touch ID于密码的简易开发教程
- iOS---Touch ID于密码的简易开发教程
- iOS---Touch ID于密码的简易开发教程
- iOS开发之Touch ID指纹验证
- iOS Touch ID 简易开发教程
- vim分屏操作
- JDK各个版本的新特性jdk1.5-jdk8
- java 类的总结
- 1079. Total Sales of Supply Chain (25)
- Nova state machine simplification
- iOS开发中Touch ID的使用
- 模板编译的小错误
- redis linux安装 [adlist.o] Error jemalloc/jemalloc.h: No such file or directory
- 清空memcache缓存的一些资料
- 所有节点之间的最短路问题
- centos下nginx的安装
- contiki netstack数据收发结构
- Lua程序设计:第1章 开始
- 读书不二