如何在 ios 10 中使用 Sirikit 为 SendPayment 意图自定义 "MoneySent" 意图 UI 屏幕

How to customize "MoneySent" intent UI screen for SendPayment intent using Sirikit in ios 10

我正在为支付域应用程序使用 SendPayment 意图。基本上,它显示两个屏幕:- 1) 发送门尼 2) 汇款

由于两个流都显示了相同的意图视图控制器,任何人都可以分享一些如何通过 "Money Sent" 视图更改 "Send Money" 意图视图的技巧。

此外,在 Apple 文档中,它是为使用 childViewController 编写的,但想知道它必须在什么基础上用作配置方法,intenthandlingstatus 始终是 "undefined"。

     func configure(with interaction: INInteraction!, context: INUIHostedViewContext, completion: ((CGSize) -> Void)!) {
// here interaction.intentHandlingStatus allways shows undefined

}

求推荐。 谢谢

我没有发现 Apple 设置的任何变量能够区分确认步骤和发送步骤。

但是,如果您的数据结构正确,则有一种方法可以间接实现此功能。

Apple 要求您设置 PaymentRecord 并将其附加到 confirmSendPayment:completion 和 handleSendPayment:completion 中的每个 IntentResponse:

我所做的是在确认步骤中将付款状态设置为待定,然后在处理步骤中设置为已完成。因此,我可以在 UI 扩展中使用以下代码来显示我所处步骤的正确 UI:

INSendPaymentIntent *sendPaymentIntent = (INSendPaymentIntent *)interaction.intent;
INSendPaymentIntentResponse *sendPaymentResponse = (INSendPaymentIntentResponse *)interaction.intentResponse;
if (sendPaymentResponse.paymentRecord.status == INPaymentStatusPending) {
    // Confirm step
    [self setupUI:sendPaymentIntent forView:self.previewView];
    self.previewView.hidden = false;
    self.completeView.hidden = true;
} else if (sendPaymentResponse.paymentRecord.status == INPaymentStatusCompleted) {
    // Action performed step
    [self setupUI:sendPaymentIntent forView:self.completeView];
    self.previewView.hidden = true;
    self.completeView.hidden = false;
}