SKPaymentQueue.default().add(payment)
我正在开始应用内购买。但我认为购买窗口有时会打开较晚。有没有方法,委托方法来监听这个屏幕打开的情况?
我研究了这个,但我无法得出结论,有人知道吗?
SKPaymentQueue.default().add(payment)
我正在开始应用内购买。但我认为购买窗口有时会打开较晚。有没有方法,委托方法来监听这个屏幕打开的情况?
我研究了这个,但我无法得出结论,有人知道吗?
您可以使用下面的委托来处理它(例如显示/隐藏进度视图)关于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
}
}
}
}
我建议使用制作精良(且易于使用)的库来处理应用内购买。它被称为 SwiftyStoreKit。在此处输入链接描述我们在许多项目中使用它,并且在处理采购时它具有很好的关闭功能。您可以在调用它的方法之前放置您的 UI 阻塞进度指示器,并在闭包返回结果时移除。