0
SKPaymentQueue.default().add(payment)

我正在开始应用内购买。但我认为购买窗口有时会打开较晚。有没有方法,委托方法来监听这个屏幕打开的情况?

我研究了这个,但我无法得出结论,有人知道吗?

4

2 回答 2

1

您可以使用下面的委托来处理它(例如显示/隐藏进度视图)关于SKPaymentTransactionState

// Handle transaction status after you call .add(payment).
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
    for transaction:AnyObject in transactions {
        if let trans = transaction as? SKPaymentTransaction {
            switch trans.transactionState {
            case .purchased:                 
                SKPaymentQueue.default().finishTransaction(trans)
                // purchased..
            case .failed:
                SKPaymentQueue.default().finishTransaction(trans)
                // failed ..
            case .restored:
                SKPaymentQueue.default().finishTransaction(trans)
                // restored
            default:
                break
            }
        }
    }
}
于 2020-07-02T09:08:34.890 回答
0

我建议使用制作精良(且易于使用)的库来处理应用内购买。它被称为 SwiftyStoreKit。在此处输入链接描述我们在许多项目中使用它,并且在处理采购时它具有很好的关闭功能。您可以在调用它的方法之前放置您的 UI 阻塞进度指示器,并在闭包返回结果时移除。

于 2020-07-02T08:31:25.710 回答