相关疑难解决方法(0)

使用 SwiftUI 实现 Apple Pay

这是我第一次在一个大项目中使用 PassKit 和 SwiftUI。我正在尝试实现 Apple Pay SwiftUI,并且由于还没有本地方式来实现,因此我尝试将 PKPaymentAuthorizationViewController 包装在 UIViewControllerRepresentable 中,但我不确定我是否正确执行此操作。

该视图显示正确,并且在单击它付款时似乎可以正常工作。我通过将视图绑定到 isPresentingApplePay bool 来控制显示窗口(见下文)。应该关闭窗口时会发生问题。点击cancel按钮不会关闭视图;有时它甚至不调用 paymentAuthorizationViewControllerDidFinish 委托函数。提交付款也会发生同样的事情。有时会调用 didFinish 委托,但不会取消视图。我尝试传递绑定变量 isPresentingApplePay 并将其从 didFinish设置为false但它没有做任何事情。让视图消失的唯一方法是点击苹果支付窗口的任何部分。

有谁知道我做错了什么?有什么我完全想念的吗?

通过将视图绑定到 if statement

这是我的 PKPaymentAuthorizationViewController 包装器:

import Foundation
import PassKit
import SwiftUI

struct ApplePayController: UIViewControllerRepresentable {
    @Environment(\.presentationMode) var presentationMode
    @EnvironmentObject var userData: UserData
    @Binding var purchase: Purchase
    @Binding var isPresenting: Bool

    let items: [PKPaymentSummaryItem]

    func updateUIViewController(_ uiViewController: PKPaymentAuthorizationViewController, context: Context) {

    }

    typealias UIViewControllerType = PKPaymentAuthorizationViewController


    func makeUIViewController(context: Context) …
Run Code Online (Sandbox Code Playgroud)

ios passkit applepay swiftui uiviewrepresentable

10
推荐指数
1
解决办法
2587
查看次数

标签 统计

applepay ×1

ios ×1

passkit ×1

swiftui ×1

uiviewrepresentable ×1