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

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

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

例如:“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. 请求 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 .

swift 4

import StoreKit

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

关于ios - 屏幕上显示的应用内购买价格(带货币),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28905970/

相关文章:

iphone - iOS 6 - Facebook 'Like' 按钮

c++ - Visual Studio 中的静态编译库 (.lib) 是否可以链接到 iOS 应用程序?

ios - 使用 Core Data 保存图像

swift - "if case"- 条件中的变量绑定(bind)需要初始化程序

ios - WatchKit 的 willActivate() 函数。 Xcode 不喜欢 self.view.insertSubview

html - 基于触摸的设备上的下拉菜单

ios - 使用 ActionButton 时背景屏幕变灰

iphone - Icenium 未找到配置文件

xcode - 将 Swift 中 HTTP 请求返回的 NSData 转换为字符串

c# - Unity XCode iOS 在启动时崩溃