IOS8,9 TouchID开发(两行代码实现)Swiftor,OCer都能看懂(献给初学者)
2016-04-09 00:00
495 查看
摘要: IOS8,9 TouchID开发(两行代码实现)Swiftor,OCer都能看懂(献给初学者)
直入主题;TouchID的开发调用很简单,到底有多简单呢? 只需要执行一下两行代码即可 let context = LAContext() context.evaluatePolicy(LAPolicy, localizedReason: reasonString, reply:(Bool, NSError?) -> Void)
无论是Swift还是OC,都需要引入这个库!swift引入LocalAuthentication
Swift: import LocalAuthentication
OC: #import LocalAuthentication/LocalAuthentication.h
初始化LAContext对象
Swift : let context = LAContext()
OC : LAContext *context = [[LAContext alloc]init];
判断设备是否支持TouchID
调用对象context的canEvaluatePolicy方法
第一个参数传入:DeviceOwnerAuthenticationWithBiometrics
第二个参数可以忽略:nil
返回值为Bool类型,判断当前设备是否支持TouchID
如果设备支持TouchID则,调用验证方法
方法名称:evaluatePolicy
第一个参数(和上面一样):DeviceOwnerAuthenticationWithBiometrics
第二个参数(提示信息):随便填
第三个 - Block(success,error?):第一个返回是否验证成功,是一个BOOL值,第二个参数返回int类型,可从LAError枚举中获取值(文章末尾备注错误码解释)
前往Github上查看SWIFT版本DEMO
直入主题;TouchID的开发调用很简单,到底有多简单呢? 只需要执行一下两行代码即可 let context = LAContext() context.evaluatePolicy(LAPolicy, localizedReason: reasonString, reply:(Bool, NSError?) -> Void)
关键步骤说明
引入包:LocalAuthentication/LocalAuthentication.h;无论是Swift还是OC,都需要引入这个库!swift引入LocalAuthentication
Swift: import LocalAuthentication
OC: #import LocalAuthentication/LocalAuthentication.h
初始化LAContext对象
Swift : let context = LAContext()
OC : LAContext *context = [[LAContext alloc]init];
判断设备是否支持TouchID
调用对象context的canEvaluatePolicy方法
第一个参数传入:DeviceOwnerAuthenticationWithBiometrics
第二个参数可以忽略:nil
返回值为Bool类型,判断当前设备是否支持TouchID
如果设备支持TouchID则,调用验证方法
方法名称:evaluatePolicy
第一个参数(和上面一样):DeviceOwnerAuthenticationWithBiometrics
第二个参数(提示信息):随便填
第三个 - Block(success,error?):第一个返回是否验证成功,是一个BOOL值,第二个参数返回int类型,可从LAError枚举中获取值(文章末尾备注错误码解释)
swift完整示例代码
import UIKit import LocalAuthentication protocol MOGTouchDeledagte { /// 验证成功 func mog_touchSuccess() /// 验证失败(错误码) func mog_touchFailure(error:Int) /// 当前设备不支持指纹解锁 func mog_notSupport() } class MOGTouch { var delegate:MOGTouchDeledagte? var fallbackTitle:String? func startTouch(reasonString:String) { // 初始化一个LAContext对象 let context = LAContext() // 第一次验证错误时自定义显示按钮标题 context.localizedFallbackTitle = fallbackTitle // 判断是否支持TouchID if context.canEvaluatePolicy(.DeviceOwnerAuthenticationWithBiometrics, error: nil) { // 调用TouchID验证方法 context.evaluatePolicy(.DeviceOwnerAuthenticationWithBiometrics, localizedReason: reasonString, reply: { (success, error) -> Void in if success { // 验证成功 self.delegate?.mog_touchSuccess() } else { self.delegate?.mog_touchFailure(error?.code ?? -1) }) } else { // 设备不支持 self.delegate?.mog_notSupport() } } }
!!!值得注意!!!!
block块回调函数中并非主线程,若需更新UI界面,必须回到主线程进行处理附注:返回错误参数:LAError
// AuthenticationFailed TouchID验证失败,指纹密码错误 // UserCancel TouchID验证失败,指纹密码错误 // UserFallback 用户点击了自定义按钮 // SystemCancel 在验证的TouchID的过程中被系统取消 例如突然来电话、按了Home键、锁屏... // PasscodeNotSet 系统取消 // TouchIDNotAvailable 该设备的TouchID无效 // TouchIDNotEnrolled 无法启用TouchID,设备没有设置密码 //@available(iOS 9.0, *) // TouchIDLockout // 多次连续使用Touch ID失败,Touch ID被锁,需要用户输入密码解锁 // AppCancel // 当前软件被挂起取消了授权(如突然来了电话,应用进入前台) // InvalidContext // 当前软件被挂起取消了授权 (授权过程中,LAContext对象被释)
前往Github上查看SWIFT版本DEMO
相关文章推荐
- Swift写简易计算器
- 谷歌或在 Android 中支持苹果的 Swift 编程语言
- Swift与OC混合使用
- Swift开源库
- 用 Swift、Foursquare API 和 Realm 創建一個咖啡店 App
- swift
- Swift NSArray、NSMutableArray问题
- Swift - 02
- 【Swift学习】Swift编程之旅(二)
- Swift大会PDF观看总结
- Compiler error: 写Swift报出 Obj-C 选择器不允许重载
- Swift - 二维码QRCode的读取(从图片读取 ,或通过摄像头扫描)
- swift基础知识
- Swift - 01
- Swift是否和OC一样有runtime机制
- swift 学习网站
- swift分号的使用
- Swift快速入门之分支与循环
- 【Swift学习】Swift编程之旅(一)
- 制作一个可以滑动操作的 Table View Cell