Siri Intent Extension中的TouchID身份验证

alx*_*ves 7 ios swift sirikit sirishortcuts

我有一个Intent ExtensionView该工作相当不错的用于显示应用程序的信息类别。

现在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))
    }
}
Run Code Online (Sandbox Code Playgroud)

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

屏幕

有没有一种方法可以请求TouchId内部验证Intent Extension

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

Ami*_*n3t 1

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

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