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

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

例如:“5个硬币€0,99”

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

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

谢谢!

如果通过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)! } } 

从这里和这里获取的信息。

斯威夫特4

 import StoreKit extension SKProduct { var localizedPrice: String { let formatter = NumberFormatter() formatter.numberStyle = .currency formatter.locale = priceLocale return formatter.string(from: price)! } } 

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

为了做到这一点,你将看看如何做到:

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