在這裡寫了一個指紋驗證的類,公開了一個類方法來自定義輸入提醒使用者的内容,随時調用即可完成touch id驗證功能
1 建立一個類檔案:
fingerUnlock繼承于NSObject就可以
2 在這個檔案中導入需要的系統架構
import LocalAuthentication
3 直接粘代碼就OK,下面這個方法是自己随便寫的一個類方法 主要是為了輸入提醒文字并驗證
class func userFigerprintAuthenticationTipStr(tipsStr: String) {
let context = LAContext()
var error: NSError?
// 判斷裝置是否支援指紋解鎖
if context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error: &error) {
context.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: tipsStr, reply: { (success, error) in
if success {
print("驗證成功")
} else {
switch Int32(error!.code) {
// 身份驗證失敗
case kLAErrorAuthenticationFailed:
print("LAErrorAuthenticationFailed")
// 使用者取消
case kLAErrorUserCancel :
print("kLAErrorUserCancel")
break
//驗證失敗
case kLAErrorUserFallback:
print("LAErrorUserFallback")
break;
// 被系統取消,例如按下電源鍵
case kLAErrorSystemCancel:
print("kLAErrorSystemCancel")
break;
// 裝置上并不具備密碼設定資訊,也就是說Touch ID功能處于被禁用狀态
case kLAErrorPasscodeNotSet:
print("kLAErrorPasscodeNotSet")
break;
// 裝置本身并不具備指紋傳感裝置
case kLAErrorTouchIDNotAvailable:
print("kLAErrorTouchIDNotAvailable")
break;
// 已經設定有密碼機制,但裝置配置當中還沒有儲存過任何指紋内容
case kLAErrorTouchIDNotEnrolled:
print("kLAErrorTouchIDNotEnrolled")
break;
// 輸入次數過多驗證被鎖
case kLAErrorTouchIDLockout:
print("kLAErrorTouchIDLockout")
break;
// app取消驗證
case kLAErrorAppCancel:
print("LAErrorAppCancel")
break;
// 無效的上下文
case kLAErrorInvalidContext:
print("LAErrorAppCancel")
break;
default:
break
}
}
})
} else {
print("您的裝置不支援touch id")
}
}
4 在需要用到touch id功能的地方調用就可以 例如:
fingerUnlock.userFigerprintAuthenticationTipStr("請把輸入指紋的手指放在Home鍵上")