IOS 指纹识别详解及实例代码
一、什么是IOS指纹识别?
指纹识别是一种生物识别技术,它通过采集用户的指纹信息,并对其进行特征提取和匹配,从而实现身份认证功能,是IOS系统的一个重要功能。
二、怎么使用IOS指纹识别?
IOS指纹识别可以通过以下步骤实现:
1.引入依赖
在Xcode的项目中,需要添加LocalAuthentication
库的依赖,通过在Build Phases
中的Link Binary With Libraries
中添加。
2.实现代码
在需要实现指纹识别功能的地方,调用以下代码:
let context = LAContext()
var error:NSError?
if context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error:&error) {
context.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: "解锁认证", reply: {
(success: Bool, authenticationError: NSError?) -> Void in
if success{
//指纹认证成功
}
else{
//指纹认证失败
}
})
}
else{
//设备不支持指纹识别或指纹识别未启用
}
三、指纹识别的实例代码
以下是两个示例说明:
示例1:指纹识别
这个示例是一个简单的指纹识别应用,用于检测是否可以使用指纹识别,并在认证成功后输出结果。
func checkTouchID(){
let touchIDcontext = LAContext()
var error: NSError?
if(touchIDcontext.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error)){
touchIDcontext.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: "指纹识别", reply: {(success, error)->Void in DispatchQueue.main.async(execute: {
if success{
self.success()
}else{
self.failure(error: error)
}
})})
}else{
self.failure(error: error)
}
}
示例2:指纹识别进阶
这个示例是一个指纹识别进阶应用,除了在认证成功后输出结果外,还增加了多次验证失败后跳转到密码验证的功能。
func checkTouchIDWithPassword(){
let touchIDcontext = LAContext()
var error: NSError?
if(touchIDcontext.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error)){
touchIDcontext.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: "指纹识别", reply: {(success, error)->Void in
DispatchQueue.main.async(execute: {
if success{
self.success()
}else{
if let touchError = error as? NSError{
switch touchError.code{
case LAError.Code.systemCancel.rawValue:
fallthrough
case LAError.Code.userCancel.rawValue:
self.password()
default:
self.failure(error: error)
}
}
}
})
})
}else{
self.failure(error: error)
}
}
func password(){
DispatchQueue.main.async(execute: {
let alert = UIAlertController(title: "Touch ID Failed", message: "Failed", preferredStyle: .alert)
let cancel = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
let pass = UIAlertAction(title: "Password", style: .default, handler: {(action: UIAlertAction) -> Void in
if let textField = alert.textFields?.first{
if let password = textField.text{
self.authWithPassword(password: password)
}
}
})
alert.addTextField(configurationHandler: {(textField: UITextField)-> Void in
textField.placeholder = "请输入密码"
textField.isSecureTextEntry = true
})
alert.addAction(cancel)
alert.addAction(pass)
self.present(alert, animated: true, completion: nil)
})
}
func authWithPassword(password: String){
if password == "123456"{
self.success()
}else{
self.failure(error: NSError(domain: "验证失败", code: -1, userInfo: nil))
}
}
以上便是IOS指纹识别的详细攻略及实例代码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:IOS 指纹识别详解及实例代码 - Python技术站