屏幕上显示的应用内购买价格(含货币)

sdd*_*sdd 11 xcode itunesconnect in-app-purchase ios swift

我想要你点击的按钮来买一些东西来显示它的价格.

例如:"5个硬币€0,99"

但是,如果我用这个文本创建一个UIlabel,美国人也会看到以欧元而不是美元的价格.

现在,我如何根据用户所在的货币设置价格?我在一些游戏中看到它,所以我确信这是可能的.

谢谢!

f3n*_*1kc 20

如果通过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();
Run Code Online (Sandbox Code Playgroud)
  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")
    }
}
Run Code Online (Sandbox Code Playgroud)
  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)!
    }

}
Run Code Online (Sandbox Code Playgroud)

这里这里获取的信息.

斯威夫特4

import StoreKit

extension SKProduct {
    var localizedPrice: String {
        let formatter = NumberFormatter()
        formatter.numberStyle = .currency
        formatter.locale = priceLocale
        return formatter.string(from: price)!
    }
}
Run Code Online (Sandbox Code Playgroud)


lch*_*amp 2

您可能想要本地化(国际化)您的界面和文本。

为了做到这一点,您将了解如何做到这一点:

  • 你的故事板(你仍然会处理一个,但在内部文件中翻译你想要的文本)
  • 在你的代码里面。例如NSLocalizedString: http: //goo.gl/jwQ5Po (Apple)、http://goo.gl/S1dCUW (NSHipster)、...