我已经在我的一个应用程序中成功实现了IAP。
目前,我正在使用NotificationCenter
通知购买商品时,我的UIViewController
可以正常工作:
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
for transaction in transactions {
print(transaction.transactionState.status(), transaction.payment.productIdentifier)
switch transaction.transactionState {
case .purchasing: break
case .purchased:
print("purhcsed")
NotificationCenter.default.post(name: Notification.Name(rawValue: "Cvpurchased"), object: nil, userInfo: nil)
queue.finishTransaction(transaction)
default:
print("updatedTransactions")
queue.finishTransaction(transaction)
}
}
}
问题是,我要等待用户在执行下一个操作之前在“您已全部设置”警报上按“确定”。
我一直在寻找委托方法,但在Apple文档中找不到任何东西。
您可以使用applicationState
的UIApplication
作为解决方法。
购买完成后,如果applicationState
为inactive
,请等待状态更改为active
,然后做您的工作。
您可以使用applicationDidBecomeActive(_ application: UIApplication)
委托或UIApplicationDidBecomeActive
通知。