屏幕上显示的应用内购买价格(含货币)
我想要你点击的按钮来买一些东西以显示它的价格。
例如:“5个硬币€0,99”
但是,如果我用这个文本创建一个UIlabel,美国人也会看到以欧元而不是美元的价格。
现在,我如何根据用户所在的货币设置价格? 我在一些游戏中看到它,所以我确信这是可能的。
谢谢!
如果通过Apple App Store进行购买(使用StoreKit框架),您需要从SKProduct对象获得价格+货币(价格会有所不同)。
https://developer.apple.com/library/ios/documentation/StoreKit/Reference/SKProduct_Reference/
更新
- 您需要执行加载可用产品的请求
var productID:NSSet = NSSet(object: “product_id_on_itunes_connect”); var productsRequest:SKProductsRequest = SKProductsRequest(productIdentifiers: productID); productsRequest.delegate = self; productsRequest.start();
- 请求代表将返回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") } }
- 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),…