加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 02:03:51 所属栏目:百科 来源:网络整理
导读:如下代码是实现调用5S以上设备指纹识别的代码,按照官网给出的代码,会出现识别成功后很久才执行成功后调用的代码,逛了很久的,才知道要将其放入主线程实现才可以。具体代码如下。 1、引入类 import LocalAuthentication //调用指纹识别函数 func loginWith

如下代码是实现调用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.
            }
        }
    }

??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读