【问题标题】:LAContext Touch ID inside of App extension Keyboard应用扩展键盘内的 LAContext Touch ID
【发布时间】:2016-02-29 09:50:15
【问题描述】:

我正在尝试添加 touchid 来解锁自定义键盘扩展的密码保护部分。

当我将此代码添加到自定义键盘扩展的 UIInputViewController 时,它会生成运行时错误

let authContext = LAContext()

错误是:

2015-09-01 22:18:50.524 AS_Custom_KB[21508:2656253] 插件 com.example.AS-Custom-KB.AS-Custom-KeyBoard 中断 2015-09-01 22:18:50.545 AS_Custom_KB[21508:2656253] 插件 com.example.AS-Custom-KB.AS-Custom-KeyBoard 无效 2015-09-01 22:18:51.635 AS_Custom_KB[21508:2656082] viewServiceDidTerminateWithError:: 错误 Domain=_UIViewServiceInterfaceErrorDomain Code=3 "操作 无法完成。 (_UIViewServiceInterfaceErrorDomain 错误 3.)" UserInfo=0x174273f80 {Message=服务连接中断}

相同的代码在模拟器上运行良好,但由于模拟器不支持 TouchID,因此无法执行任何操作。该代码在常规应用程序(而不是自定义键盘扩展程序)中也可以正常工作。

我尝试查看 LAContext 文档,但没有找到任何关于它为什么会导致这样的错误的信息,或者关于无法从扩展程序中使用它的任何信息。

关于为什么会发生这种情况,或者如何通过自定义键盘扩展使其工作的任何想法?有没有人能够通过自定义键盘扩展来使用 touchid?

【问题讨论】:

    标签: ios ios-app-extension touch-id


    【解决方案1】:

    经过 24 小时的研发,我自己找到了答案,我发现答案和设置非常简单

    在你的NSExtensionAttributes中设置RequestsOpenAccess

    【讨论】:

    • 我按照你说的做。但这行不通。错误:`initWithExistingContext -> (null),错误域 = NSCocoaErrorDomain 代码 = 4099“与名为 com.apple.CoreAuthentication.daemon 的服务的连接无效。”`。它对你有用吗?我想在我的键盘扩展中使用 Touch ID。我在 iOS 11 中对其进行了测试。
    • @kai 只需从“设置”>“通用”>“键盘”>“您的自定义键盘”中授予对键盘的完全访问权限
    猜你喜欢
    • 1970-01-01
    • 2018-05-30
    • 2017-10-31
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多