Каков правильный способ отображения цены покупки в приложении в разных валютах [дубликат]

Короткий ответ: вам нужно выполнить обратный вызов следующим образом:

function callback(response) {
    // Here you can do what ever you want with the response object.
    console.log(response);
}

$.ajax({
    url: "...",
    success: callback
});
10
задан sdd 6 March 2015 в 20:12
поделиться

2 ответа

Вы можете захотеть локализовать (интернационализировать) ваш интерфейс и тексты.

Чтобы сделать это, вы посмотрите, как это сделать для:

  • Ваш раскадровки (вы все равно будете обрабатывать один, но переведите тексты, которые вы хотите во внутреннем файле)
  • Внутри вашего кода. Например, NSLocalizedString: http://goo.gl/jwQ5Po (Apple), http://goo.gl/S1dCUW (NSHipster), ...
2
ответ дан lchamp 24 August 2018 в 07:26
поделиться

Если покупки осуществляются через Apple App Store (с использованием инфраструктуры StoreKit), вам нужно получить цену + валюту от объекта SKProduct (цены будут варьироваться).

https://developer.apple. com / library / ios / documentation / StoreKit / Reference / SKProduct_Reference /

Обновить

  1. вам необходимо выполнить запрос на загрузку доступных продуктов
var productID:NSSet = NSSet(object: “product_id_on_itunes_connect”);
var productsRequest:SKProductsRequest = SKProductsRequest(productIdentifiers: productID);
productsRequest.delegate = self;
productsRequest.start();
  1. Запрос делегат вернет SKProduct .
func productsRequest (request: SKProductsRequest, didReceiveResponse response: SKProductsResponse) {
    println("got the request from Apple")
    var validProducts = response.products
    if !validProducts.isEmpty {
        var validProduct: SKProduct = response.products[0] as SKProduct
        if (validProduct.productIdentifier == self.product_id) {
            println(validProduct.localizedTitle)
            println(validProduct.localizedDescription)
            println(validProduct.price)
            buyProduct(validProduct);
        } else {
            println(validProduct.productIdentifier)
        }
    } else {
        println("nothing")
    }
}
  1. SKProduct содержит всю необходимую информацию для отображения локализованной цены, но я предлагаю создать категорию SKProduct, которая форматирует цену + валюту для текущего пользователя
import StoreKit

extension SKProduct {

    func localizedPrice() -> String {
        let formatter = NSNumberFormatter()
        formatter.numberStyle = .CurrencyStyle
        formatter.locale = self.priceLocale
        return formatter.stringFromNumber(self.price)!
    }

}

Информация, взятая из здесь и здесь .

Swift 4

import StoreKit

extension SKProduct {
    var localizedPrice: String {
        let formatter = NumberFormatter()
        formatter.numberStyle = .currency
        formatter.locale = priceLocale
        return formatter.string(from: price)!
    }
}
16
ответ дан Nik Kov 24 August 2018 в 07:26
поделиться