我想知道当用户从应用程序的设置中禁用它们时,我如何调用 iOS 以显示从苹果弹出的警报,让应用程序访问 Face ID/Touch ID。我知道这是放在 info plist 中的,但是当我从设置中禁用它们时,它不会再次显示询问:
问问题
1228 次
3 回答
0
正如@Paulw11提到的,你只能问一次。如果用户拒绝访问,您能做的最好的事情就是向他们发出警报,询问他们是否要转到“设置”以允许生物识别。代码将是这样的:
let alertController = UIAlertController (title: "Title", message: "Go to Settings?", preferredStyle: .alert)
let settingsAction = UIAlertAction(title: "Settings", style: .default) { (_) -> Void in
guard let settingsUrl = URL(string: UIApplication.openSettingsURLString) else {
return
}
if UIApplication.shared.canOpenURL(settingsUrl) {
UIApplication.shared.open(settingsUrl, completionHandler: { (success) in
print("Settings opened: \(success)") // Prints true
})
}
}
alertController.addAction(settingsAction)
let cancelAction = UIAlertAction(title: "Cancel", style: .default, handler: nil)
alertController.addAction(cancelAction)
present(alertController, animated: true, completion: nil)
正如在这个答案上看到的那样。
请记住,这会将用户从应用程序中取出,但到目前为止还没有其他方法可以做到这一点。
于 2019-10-17T12:03:12.003 回答
0
如果在设置中关闭了 Face ID,则必须将其重定向到设置才能重新打开。
于 2021-10-15T16:25:45.340 回答
-1
您需要检查设备是否可以通过生物识别进行身份验证。
让我们在调用函数进行身份验证之前执行此操作。
func canAuthenByBioMetrics() -> Bool {
let context = LAContext()
var authError: NSError?
if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &authError) {
return true
} else {
return false
}
}
显示您的代码将如下所示:
if self.canAuthenByBioMetrics() {
// Do you authentication
} else {
// Ask user for enable permission or setup biometric if needed
}
于 2019-10-17T09:53:57.877 回答