我有一个Intent Extension类别的View,对于显示应用程序信息非常有效。

现在出于安全原因,我需要启用TouchID,因此用户需要在请求信息之前进行身份验证。

我尝试了这个:

func handle(intent: GetSaldoIntent, completion: @escaping (GetSaldoIntentResponse) -> Void) {

    let myContext = LAContext()

    myContext.evaluatePolicy(
    .deviceOwnerAuthenticationWithBiometrics,
    localizedReason: "Unlock to see the info",
    reply: { [unowned self] (success, error) -> Void in
        if( success ) {
            completion(GetSaldoIntentResponse.success(saldo: String(self.paymentProvider.balance)))
            return
            }
        })
        completion(GetSaldoIntentResponse(code: .failureRequiringAppLaunch, userActivity: nil))
    }
}

但是TouchID对话框关闭Siri屏幕,然后对话结束:

ios - Siri Intent Extension中的TouchID身份验证-LMLPHP

有没有一种方法可以在TouchId中请求Intent Extension验证?

我知道PKPayment做类似的事情,但这不是交易,因此我不能使用ApplePay

最佳答案

Siri已经支持授权,您只需要让Siri知道您的意图需要授权,而不是自己实现授权。希望对您有帮助:

https://developer.apple.com/documentation/sirikit/requesting_authorization_to_use_sirikit

07-26 09:40