iOS_TouchID使用Demo

import UIKit
// 1. 导入: LocalAuthentication
import LocalAuthentication

class ViewController: UIViewController {

  override func viewDidLoad() {
    super.viewDidLoad()
    touchID();
  }

  func touchID () {
    // 2. 获得一个上下文对象,来管理操作指纹解锁的过程
    let context = LAContext()
    var error: NSError?
    
    // 3. 判断设备是都支持指纹识别
    if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) {
      
      // 4. 开始进入识别状态
      context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: "请用指纹解锁") { (success, error) in
        if success {
          print("识别成功");
        } else {
          print("识别失败");
          if let error = error as NSError? {
            let message = self.errorMessageForLAErrorCode(errorCode: error.code)
            print(message);
          }
        }
      }
    }
  }

  // 错误类型
  func errorMessageForLAErrorCode(errorCode: Int) -> String {
    var message = ""
    switch errorCode {
    case LAError.systemCancel.rawValue: message = "身份验证被系统取消"
    case LAError.appCancel.rawValue: message = "身份验证被应用程序取消"
    case LAError.authenticationFailed.rawValue: message = "用户未能提供有效凭证"
    case LAError.invalidContext.rawValue: message = "上下文无效"
    case LAError.passcodeNotSet.rawValue: message = "设备上没有设置密码"
    case LAError.biometryNotAvailable.rawValue: message = "TouchID在设备上是不可用的"
    case LAError.biometryNotEnrolled.rawValue: message = "身份验证无法启动,因为生物识别没有登记身份"
    case LAError.biometryLockout.rawValue: message = "身份验证尝试太多, 已被锁定"
    case LAError.userCancel.rawValue: message = "用户取消了"
    case LAError.userFallback.rawValue: message = "用户选择使用回退"
    case LAError.notInteractive.rawValue: message = "身份验证失败,因为使用interactionNotAllowed属性禁止的UI的显示"
    default: message = "Did not find error code on LAError object"
    }
    return message
  }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫小言mo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值