Страницы

Поиск по вопросам

среда, 17 октября 2018 г.

swift: in-app purchase

Нужно на кнопке показать стоимость встроенной покупки в валюте страны покупателя.
Для России мой текст выглядит так: 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)! }


Ответ

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)

Комментариев нет:

Отправить комментарий