Swift: 购买完成如何通知
Swift: How to notify when purchase is complete
购买完成后我有一个SKPaymentTransactionObserver
检查
extension IAPService: SKPaymentTransactionObserver {
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
for transaction in transactions {
print(transaction.transactionState.status(), transaction.payment.productIdentifier)
if transaction.transactionState.status() == "purchased" {
// Pro Purchased
}
switch transaction.transactionState {
case .purchasing: break
default: queue.finishTransaction(transaction)
}
}
}
}
如何在 ViewController
上隐藏购买完成后购买的物品
您可以在 IAPService 中创建闭包 class:
var productDidPurchased: (() -> Void)?
然后在你的扩展中你可以这样使用它:
switch transaction.transactionState {
case .purchasing:
break
case .purchased:
productDidPurchased?()
default:
queue.finishTransaction(transaction)
}
然后在您的 ViewController 中检索它:
IAPService.shared.productDidPurchased = {
[weak self] in
//you will receive a callback when the product is purchased and can hide your view here
}
购买完成后我有一个SKPaymentTransactionObserver
检查
extension IAPService: SKPaymentTransactionObserver {
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
for transaction in transactions {
print(transaction.transactionState.status(), transaction.payment.productIdentifier)
if transaction.transactionState.status() == "purchased" {
// Pro Purchased
}
switch transaction.transactionState {
case .purchasing: break
default: queue.finishTransaction(transaction)
}
}
}
}
如何在 ViewController
上隐藏购买完成后购买的物品
您可以在 IAPService 中创建闭包 class:
var productDidPurchased: (() -> Void)?
然后在你的扩展中你可以这样使用它:
switch transaction.transactionState {
case .purchasing:
break
case .purchased:
productDidPurchased?()
default:
queue.finishTransaction(transaction)
}
然后在您的 ViewController 中检索它:
IAPService.shared.productDidPurchased = {
[weak self] in
//you will receive a callback when the product is purchased and can hide your view here
}