美文网首页
iOS-swfit 指纹验证

iOS-swfit 指纹验证

作者: Cary9396 | 来源:发表于2018-08-28 10:28 被阅读0次

今天来说一下swfit版本系统的指纹调用,稍微封装了一下。 直接上代码:

import UIKit
import LocalAuthentication

enum CATouchIDState {
    
    case NotSupport  //当前设备不支持TouchID
    case Success  //TouchID 验证成功
    case Fail  //TouchID 验证失败
    case UserCancel  //TouchID 被用户手动取消
    case InputPassword  //用户不使用TouchID,选择手动输入密码
    case SystemCancel  //TouchID 被系统取消 (如遇到来电,锁屏,按了Home键等)
    case PasswordNotSet  //TouchID 无法启动,因为用户没有设置密码
    case TouchIDNotSet  //TouchID 无法启动,因为用户没有设置TouchID
    case TouchIDNotAvailable  //TouchID 无效
    case TouchIDLockout  //TouchID 被锁定(连续多次验证TouchID失败,系统需要用户手动输入密码)
    case AppCancel  //当前软件被挂起并取消了授权 (如App进入了后台等)
    case InvalidContext  //当前软件被挂起并取消了授权 (LAContext对象无效)
    case VersionNotSupport  //系统版本不支持TouchID (必须高于iOS 8.0才能使用)
    
}

class CATouchID: LAContext {
    
   
    func showTouchID(desc:String,closure:@escaping (CATouchIDState)->Void) {
        
        
        if NSFoundationVersionNumber < NSFoundationVersionNumber_iOS_8_0 {
            
            closure(.NotSupport)
            print("系统版本不支持TouchID (必须高于iOS 8.0才能使用)")
        
            return
        }
        let context = LAContext()
        var error:NSError?
        context.localizedFallbackTitle = desc
        if context.canEvaluatePolicy(LAPolicy(rawValue: LAPolicy.RawValue(kLAPolicyDeviceOwnerAuthenticationWithBiometrics))!, error: &error) {
            context.evaluatePolicy(LAPolicy(rawValue: LAPolicy.RawValue(kLAPolicyDeviceOwnerAuthenticationWithBiometrics))!, localizedReason: desc == "" ? "通过Home键验证已有指纹":desc) { (success, error) in
                if success {
                    
                    closure(.Success)
                    print("TouchID 验证成功")
                    
                }
                else if error != nil {
                    
                    let err = error as! LAError
                    
                    switch err.code {
                        
                    case .authenticationFailed:
                        print("TouchID 验证失败")
                        closure(.Fail)
                    case .userCancel:
                        print("TouchID 被用户手动取消")
                        closure(.UserCancel)
                    case .userFallback:
                        print("用户不使用TouchID,选择手动输入密码")
                        closure(.InputPassword)
                    case .systemCancel:
                        print("TouchID 被系统取消 (如遇到来电,锁屏,按了Home键等)")
                        closure(.SystemCancel)
                    case .passcodeNotSet:
                        print("TouchID 无法启动,因为用户没有设置密码")
                        closure(.PasswordNotSet)
                    case .touchIDNotEnrolled:
                        print("TouchID 无法启动,因为用户没有设置TouchID")
                        closure(.TouchIDNotSet)
                    case .touchIDNotAvailable:
                        print("TouchID 无效")
                        closure(.TouchIDNotAvailable)
                    case .touchIDLockout:
                        print("TouchID 被锁定(连续多次验证TouchID失败,系统需要用户手动输入密码)")
                        closure(.TouchIDLockout)
                    case .appCancel:
                        print("当前软件被挂起并取消了授权 (如App进入了后台等)")
                        closure(.AppCancel)
                    case .invalidContext:
                        print("当前软件被挂起并取消了授权 (LAContext对象无效)")
                        closure(.InvalidContext)
                    default:
                        break
                    }
                }
            }
        }
        else {
            
            print("当前设备不支持TouchID")
            closure(.NotSupport)
            
        }
    }
    
}

调用的时候:

  let touchID = CATouchID()
  touchID.showTouchID(desc: "") { (result) in
            
        }

相关文章

  • iOS-swfit 指纹验证

    今天来说一下swfit版本系统的指纹调用,稍微封装了一下。 直接上代码: 调用的时候:

  • IOS 指纹登录详解

    1.指纹验证方式: 只使用指纹验证 LAPolicyDeviceOwnerAuthenticationWithBi...

  • Android指纹识别

    上一篇讲了通过FingerprintManager验证手机是否支持指纹识别,以及是否录入了指纹,这里进行指纹的验证...

  • iOS开发 - 手机指纹验证

    手机指纹验证 使用

  • android指纹支付

    一: 指纹支付工作流程: 二 指纹原理解析: 1 指纹验证:通过FingerprintManager.authen...

  • 爱上课的锁

    老王换了个地方办公,大门是指纹锁。每次进门都要验证指纹,手指放上去,然后一个女生严肃地说:“验证成功”或“验证失败...

  • iOS 8手势验证 手势密码

    // 验证系统指纹和密码 LAPolicyDeviceOwnerAuthenticationWithBiomet...

  • 指纹、VR、AR

    ------指纹------优雅实现Android指纹验证安卓指纹识别库(安卓官方 + 三星 SDK + 魅族 S...

  • iOS指纹登录

    功能需求 用户首次登录APP后,开启指纹验证功能,当APP由后台进入前台或重启时,APP需要验证指纹,通过后才能正...

  • 指纹识别验证

    本文仅实现简单的验证跳转 引入依赖库 指纹验证的实现代码如下: 指纹识别识别的几种反馈 Demo下载地址 参考文章...

网友评论

      本文标题:iOS-swfit 指纹验证

      本文链接:https://www.haomeiwen.com/subject/cwhiiftx.html