如何使用 IAP 在不同国家/地区以适当的货币显示价格

How to show the price in proper currency in different country with IAP

这意味着当人们要在我的游戏中购买东西时,我应该在他们点击 "buy" 按钮之前先向他们展示物品的价格,但是在不同的国家我们需要使用不同的货币,如果用户在美国,他应该看到价格是 0.99 美元,而在另一个国家我应该向他们展示他们当地的货币和价格,那么我如何在我的项目中用代码来做到这一点。 对不起,我是新手IOS,所以真的希望得到你的帮助,非常感谢

从 Apple 获得产品后,您可以从 SKProduct - https://developer.apple.com/library/ios/documentation/StoreKit/Reference/SKProduct_Reference/#//apple_ref/occ/instp/SKProduct/price 中获得以当地货币表示的 price - 然后您可以在您的购买界面.

更多详细信息(包括带格式的代码示例):http://bendodson.com/weblog/2014/12/10/skproduct-localized-price-in-swift/

这是满足您需求的 Objective C 解决方案 - 您可以 include Objective C Header into your swift project 并使用它。

- (NSString *) getLocalizedCurrencyString : (NSNumber *) amount :(NSLocale *)priceLocale
{
    NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
    [currencyFormatter setLocale:priceLocale];
    [currencyFormatter setMaximumFractionDigits:2];
    [currencyFormatter setMinimumFractionDigits:2];
    [currencyFormatter setAlwaysShowsDecimalSeparator:YES];
    [currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];

    NSString *localizedCurrency = [currencyFormatter stringFromNumber:amount];
    return localizedCurrency;
}

用法:

let priceLocale: NSLocale = product.priceLocale as NSLocale
let price: NSString = IAPHelper.sharedInstance().getLocalizedCurrencyString(product.price, priceLocale)

其中 IAPHelper 是持有 IAP 代码的 Objective C class。