【问题标题】:Price of in-app purchases shown on screen(with currency)屏幕上显示的应用内购买价格(含货币)
【发布时间】:2015-05-08 11:34:15
【问题描述】:

我想要你必须点击才能购买东西的按钮来显示价格。

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

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

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

谢谢!

【问题讨论】:

标签: ios xcode swift in-app-purchase app-store-connect


【解决方案1】:

如果通过 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. 请求delegate 将返回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)!
    }

}

信息取自 herehere

斯威夫特 4

import StoreKit

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      相关资源
      最近更新 更多