Отпустите кнопку, если покупка inapp прошла успешно - Ios - Swift - Xcode - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь закрыть кнопку после совершения покупки в приложении, а также сделать так, чтобы она больше не появлялась, когда пользователь выходит из системы или закрывает приложение. Покупка прошла успешно в моем коде, но кнопка остается.

@IBAction func inAppPurch(_ sender: Any) {
  if SKPaymentQueue.canMakePayments() {
    // Can Make payments
    let paymentRequest = SKMutablePayment()
    paymentRequest.productIdentifier = productID
    SKPaymentQueue.default().add(paymentRequest)
    inAppPurch.isHidden = true
  } else {
    // Can't Make payments
    inAppPurch.isHidden = false
    print("cant make payments")
  }
}

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
  for transaction in transactions{
    if transaction.transactionState == .purchased {
      //user payment successful
      print("Transaction successful!")
      UserDefaults.standard.set(true, forKey: productID)

      SKPaymentQueue.default().finishTransaction(transaction)
    } else if transaction.transactionState == .failed {
      // payment failed

      if let error = transaction.error {
        inAppPurch.isHidden = false
        let errorDescription = error.localizedDescription
        print("Transaction failed due to error: \(errorDescription)")
      }

      SKPaymentQueue.default().finishTransaction(transaction)
    }
  }
}

1 Ответ

0 голосов
/ 26 февраля 2020

Вам нужно получить это bool в вашем viewDidLoad() или viewWillAppear() ... и деактивировать его с этим значением bool

 let id = UserDefaults.standard.bool(forKey: productID)
 button.isHidden = id

По умолчанию возвращается false, поэтому ваша кнопка не должна быть скрыта когда вы устанавливаете его в true в transaction.transactionState == .purchased, соответственно скрываете свою кнопку

, тогда каждый раз, когда вы go обращаетесь к контроллеру вида, она остается скрытой

, если вы показываете код своей кнопки ... i объясню лучше ... это просто идея ... как этого добиться ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...