#ios #swift #button
Нужно на кнопке показать стоимость встроенной покупки в валюте страны покупателя. Для России мой текст выглядит так: 299.00 RUB Как посмотреть как выглядит покупка для США? Как вместо RUB поставить знак ₽ или вместо USD знак $? Мой код: func productsRequest (_ request: SKProductsRequest, didReceive response: SKProductsResponse) { let count : Int = response.products.count if (count>0) { let validProduct: SKProduct = response.products[0] as SKProduct if (validProduct.productIdentifier == self.product_id) { print(validProduct.localizedTitle) print(validProduct.localizedDescription) print(validProduct.price) buyProduct(product: validProduct); let numberFormatter = NumberFormatter() numberFormatter.formatterBehavior = .behavior10_4 numberFormatter.numberStyle = .currency numberFormatter.locale = validProduct.priceLocale let price = numberFormatter.string(from: validProduct.price) self.buyButton.setTitle(price, for: .normal) NSLog("The price of this product is \(validProduct.price)") } else { print(validProduct.productIdentifier) } } else { print("nothing") } } UPD func buyProduct(product: SKProduct){ print("Sending the Payment Request to Apple"); let payment = SKPayment(product: product) let price = localizedPriceForProduct(product) buyButton.setTitle("\(price)", for: .normal) SKPaymentQueue.default().add(payment); } func localizedPriceForProduct(_ product:SKProduct) -> String { let priceFormatter = NumberFormatter() priceFormatter.formatterBehavior = NumberFormatter.Behavior.behavior10_4 priceFormatter.numberStyle = NumberFormatter.Style.currencyISOCode //эта строка отвечает за формат написания (USD или $ использовать .currency) priceFormatter.locale = product.priceLocale return priceFormatter.string(from: product.price)! }
Ответы
Ответ 1
func localizedPriceForProduct(_ product:SKProduct) -> String { let priceFormatter = NumberFormatter() priceFormatter.formatterBehavior = NumberFormatter.Behavior.behavior10_4 priceFormatter.numberStyle = NumberFormatter.Style.currencyISOCode //эта строка отвечает за формат написания (USD или $ использовать .currency) priceFormatter.locale = product.priceLocale return priceFormatter.string(from: product.price)! } Вызовите функцию: var product = SKProduct() ... let price = localizedPriceForProduct(product)Ответ 2
1) посмотреть какой банк предоставляет API для перевода валют по текущему курсу. И использовать этот API 2) использовать replacingOccurrences let aString = "100 USD!" let newString = aString.replacingOccurrences(of: "USD", with: "$", options: .literal, range: nil)
Комментариев нет:
Отправить комментарий