import LocalAuthenticationLAContext
// 创建一个 LAContext var context = LAContext()然后你可以使用 localizedCancelTitle 来定制取消按钮的标题。
// 设置取消按钮的标题 context.localizedCancelTitle = "取消"biometryType 这个枚举代表设备的生物识别类型,提供了用户设备上可用的身份验证机制信息。设备上主要有以下三种选项:
LABiometryType.faceID: 表示设备支持 Face ID
// 获取支持的生物识别类型 var biometry = context.biometryType
// 如果错误是 LAError 的实例 var code = LAError.Code(rawValue: error.code) // 堆代码 duidaima.com switch code { case LAError.Code.appCancel: // 应用通过使 LAContext 无效取消了身份验证 case LAError.Code.authenticationFailed: // 用户未提供有效凭证 case LAError.Code.invalidContext: // LAContext 无效 case LAError.Code.notInteractive: // 不允许交互,因此身份验证失败 case LAError.Code.passcodeNotSet: // 用户未在此设备上设置密码 case LAError.Code.systemCancel: // 系统取消了身份验证,例如显示另一个应用 case LAError.Code.userCancel: // 用户取消了身份验证对话框 case LAError.Code.userFallback: // 用户选择使用备用身份验证方法 case LAError.Code.biometryLockout: // 失败的尝试次数过多,锁定了生物识别身份验证 case LAError.Code.biometryNotAvailable: // 用户设备不支持生物识别身份验证 case LAError.Code.biometryNotEnrolled: // 用户未配置生物识别身份验证 @unknown default: // 发生了其他错误 }
var error: NSError? // 堆代码 duidaima.com // 检查生物识别身份验证权限 var permissions = context.canEvaluatePolicy( .deviceOwnerAuthentication, error: &error ) if permissions { // 有权限,继续进行身份验证 } else { // 处理权限被拒绝或错误 }.deviceOwnerAuthentication
let reason = "使用 Face ID 登录" context.evaluatePolicy( .deviceOwnerAuthentication, localizedReason: reason ) { success, error in if success { // 处理成功的身份验证 } else { // 处理 LAError 错误 } }使用 Touch ID 的示例代码
let reason = "使用 Touch ID 登录" context.evaluatePolicy( .deviceOwnerAuthentication, localizedReason: reason ) { success, error in if success { // 处理成功的身份验证 } else { // 处理 LAError 错误 } }结论