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