在这里写了一个指纹验证的类,公开了一个类方法来自定义输入提醒用户的内容,随时调用即可完成touch id验证功能
1 新建一个类文件:
fingerUnlock继承于NSObject就可以
2 在这个文件中导入需要的系统框架
import LocalAuthentication
3 直接粘代码就OK,下面这个方法是自己随便写的一个类方法 主要是为了输入提醒文字并验证
class func userFigerprintAuthenticationTipStr(tipsStr: String) {
let context = LAContext()
var error: NSError?
// 判断设备是否支持指纹解锁
if context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error: &error) {
context.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: tipsStr, reply: { (success, error) in
if success {
print("验证成功")
} else {
switch Int32(error!.code) {
// 身份验证失败
case kLAErrorAuthenticationFailed:
print("LAErrorAuthenticationFailed")
// 用户取消
case kLAErrorUserCancel :
print("kLAErrorUserCancel")
break
//验证失败
case kLAErrorUserFallback:
print("LAErrorUserFallback")
break;
// 被系统取消,例如按下电源键
case kLAErrorSystemCancel:
print("kLAErrorSystemCancel")
break;
// 设备上并不具备密码设置信息,也就是说Touch ID功能处于被禁用状态
case kLAErrorPasscodeNotSet:
print("kLAErrorPasscodeNotSet")
break;
// 设备本身并不具备指纹传感装置
case kLAErrorTouchIDNotAvailable:
print("kLAErrorTouchIDNotAvailable")
break;
// 已经设定有密码机制,但设备配置当中还没有保存过任何指纹内容
case kLAErrorTouchIDNotEnrolled:
print("kLAErrorTouchIDNotEnrolled")
break;
// 输入次数过多验证被锁
case kLAErrorTouchIDLockout:
print("kLAErrorTouchIDLockout")
break;
// app取消验证
case kLAErrorAppCancel:
print("LAErrorAppCancel")
break;
// 无效的上下文
case kLAErrorInvalidContext:
print("LAErrorAppCancel")
break;
default:
break
}
}
})
} else {
print("您的设备不支持touch id")
}
}
4 在需要用到touch id功能的地方调用就可以 例如:
fingerUnlock.userFigerprintAuthenticationTipStr("请把输入指纹的手指放在Home键上")