您的位置:首页 > 移动开发 > Swift

Swift下调用Touch ID实现指纹识别

2015-07-03 10:49 561 查看
如下代码是实现调用5S以上设备指纹识别的代码,按照官网给出的代码,会出现识别成功后很久才执行成功后调用的代码,逛了很久的,才知道要将其放入主线程实现才可以。具体代码如下。

1、引入类 import LocalAuthentication

//调用指纹识别函数
func loginWithTouchID()
{
if((UIDevice.currentDevice().systemVersionasNSString).floatValue >= 8.0)
{
// Get the local authentication context.
let context = LAContext()
// Declare a NSError variable.
var error: NSError?
// Set the reason string that will appear on the authentication alert.
var reasonString = "弹出指纹识别框时提示用户的字符串"
// Check if the device can evaluate the policy.
if context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error: &error)
{
context.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: reasonString, reply: { (success: Bool, evalPolicyError: NSError?) -> Voidin
dispatch_async(dispatch_get_main_queue(), { () -> Voidin //放到主线程执行,这里特别重要
if success
{
//调用成功后你想做的事情
}
else
{
// If authentication failed then show a message to the console with a short description.
// In case that the error is a user fallback, then show the password alert view.
println(evalPolicyError?.localizedDescription)
}
})
})
}
else
{
// If the security policy cannot be evaluated then show a short message depending on the error.
switch error!.code
{
caseLAError.TouchIDNotEnrolled.rawValue:
 println("您还没有保存TouchID指纹")
caseLAError.PasscodeNotSet.rawValue:
println("您还没有设置密码")
default:
// The LAError.TouchIDNotAvailable case.
println("TouchID不可用")
}
// Optionally the error description can be displayed on the console.
println(error?.localizedDescription)
// Show the custom alert view to allow users to enter the password.
}
}
}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: