首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 11上的TouchID/Biometrics : LAPolicy.deviceOwnerAuthenticationWithBiometrics结果为LAErrorAppBackgrounded而不显示提示

iOS 11上的TouchID/Biometrics : LAPolicy.deviceOwnerAuthenticationWithBiometrics结果为LAErrorAppBackgrounded而不显示提示
EN

Stack Overflow用户
提问于 2017-12-05 02:57:03
回答 0查看 379关注 0票数 0

在iOS 11上,当应用程序在后台使用主页按钮时,与打开外部webview链接并转到safari时,应用程序状态似乎有所不同。

在返回我的应用程序时,我要求用户使用触摸ID进行验证。如果应用程序是使用主页按钮返回的,则对LAPolicy.deviceOwnerAuthenticationWithBiometrics的调用将显示提示并等待用户交互。但是,用户通过应用程序中的链接转到外部网站,并使用状态栏中显示的“返回应用程序”按钮返回应用程序,调用LAPolicy.deviceOwnerAuthenticationWithBiometrics会立即导致错误,而不显示触摸ID提示。

我已经检查了两种情况下调用时的应用程序状态都是应用程序为active。它是在主线程上完成的,并且是在applicationDidBecomeActive上完成的。

这是我看到的错误:

代码语言:javascript
复制
Error Domain=com.apple.LocalAuthentication Code=-1004 "User interaction is required." UserInfo={NSLocalizedDescription=User interaction is required.}`

LAPolicy.deviceOwnerAuthenticationWithBiometrics的行为有什么见解吗?用于调用它的代码是:

代码语言:javascript
复制
        let context = LAContext()
        context.localizedFallbackTitle = ""
        print("--> internalAuthenticateBiometrics background \(UIApplication.shared.applicationState == UIApplicationState.background)")
        context.evaluatePolicy(LAPolicy.deviceOwnerAuthenticationWithBiometrics, localizedReason:NSLocalizedString("Place your finger to sign in.",comment: "")) { [weak self] (success, error) in
            print("--> internalAuthenticateBiometrics completion success \(success) error \(error)")
        }
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47640118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档