gpt4 book ai didi

ios - Touch ID 导致应用程序无响应

转载 作者:技术小花猫 更新时间:2023-10-29 10:19:52 26 4
gpt4 key购买 nike

我将 ios-8 的新 touchID API 添加到我的应用程序中。它通常按预期工作,但是当我的手指已经在主页按钮上时进入应用程序时 - API 的成功回调被调用但弹出窗口仍然出现在屏幕上。按取消后 UI 变得无响应。

最佳答案

我也遇到了同样的问题,解决方案是使用高优先级队列调用 Touch ID API,并延迟:

// Touch ID must be called with a high priority queue, otherwise it might fail.
// Also, a dispatch_after is required, otherwise we might receive "Pending UI mechanism already set."
dispatch_queue_t highPriorityQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0);
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.75 * NSEC_PER_SEC), highPriorityQueue, ^{
LAContext *context = [[LAContext alloc] init];
NSError *error = nil;

// Check if device supports TouchID
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
// TouchID supported, show it to user
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
localizedReason:@"Unlock Using Touch ID"
reply:^(BOOL success, NSError *error) {
if (success) {
// This action has to be on main thread and must be synchronous
dispatch_async(dispatch_get_main_queue(), ^{
...
});
}
else if (error) {
...
}
}];
}
});

在测试我们的应用时,我们发现 750 毫秒的延迟是最佳的,但您的实际情况可能会有所不同。

更新 (03/10/2015): 一些 iOS 开发者,例如 1Password,are reporting iOS 8.2 终于解决了这个问题。

关于ios - Touch ID 导致应用程序无响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26463196/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com