Ios 防止用户解雇Apple Pay';s对话框PKPaymentAuthorizationViewController

Ios 防止用户解雇Apple Pay';s对话框PKPaymentAuthorizationViewController,ios,swift,uiwindow,applepay,presentviewcontroller,Ios,Swift,Uiwindow,Applepay,Presentviewcontroller,我正在将PKPaymentAuthorizationViewController添加到我的应用程序中。我出示它,在付款方式被授权后,我在didAuthorizePayment method按预期获得令牌。 此时,我对后端服务器进行异步调用,以便使用令牌进行事务处理,此时对话框应保持可见,并且对话框的微调器已设置动画。 我无法通过在对话框出现时点击对话框外部并等待后端调用结束来禁用用户解除对话框。即使对话框被取消,我也可以做一些变通,并继续响应该呼叫,但这是一种非常负面的用户体验。 我尝试了几乎所

我正在将PKPaymentAuthorizationViewController添加到我的应用程序中。我出示它,在付款方式被授权后,我在didAuthorizePayment method按预期获得令牌。 此时,我对后端服务器进行异步调用,以便使用令牌进行事务处理,此时对话框应保持可见,并且对话框的微调器已设置动画。 我无法通过在对话框出现时点击对话框外部并等待后端调用结束来禁用用户解除对话框。即使对话框被取消,我也可以做一些变通,并继续响应该呼叫,但这是一种非常负面的用户体验。 我尝试了几乎所有可能的方法,将isUserInteractionEnabled设置为false到PKPaymentAuthorizationViewController的视图,同时添加overlay视图也没有帮助(我给了它一些颜色,它出现了一秒钟),看起来它本机控制了我找到的任何编程解决方案

paymentVC = PKPaymentAuthorizationViewController(paymentRequest: request)

public func paymentAuthorizationViewController(_ controller: PKPaymentAuthorizationViewController, didAuthorizePayment payment: PKPayment, handler completion: @escaping (PKPaymentAuthorizationResult) -> Void) {
    // Trying to disable dismiss of the dialog from here or by calling the presenting ViewController to do it.
    
    // MyApiCall.request()
}

一般来说,您不能修改应用程序外部视图的行为。在支付方面,它可能有更多的安全警卫。相反,您应该优雅地处理拒绝查看的用户。我非常同意您关于“不要干扰本地行为”的说法,但另一方面,在这个过程中给用户一个微调器,同时允许用户拒绝它,这看起来真的很奇怪,从我所读到的内容来看,苹果建议在微调器启动时处理任何后端请求。我想知道是否有人遇到了它,或者找到了如何在不干扰对话框本身的情况下阻止屏幕的解决方案。