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

时间:2015-03-06 19:12:48

标签: ios xcode swift in-app-purchase itunesconnect

我希望您点按的按钮可以买一些东西来显示价格。

例如:" 5个硬币€0,99"

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

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

谢谢你!

2 个答案:

答案 0 :(得分:19)

如果通过Apple App Store进行购买(使用StoreKit框架),您需要从SKProduct对象获得价格+货币(价格会有所不同)。

https://developer.apple.com/library/ios/documentation/StoreKit/Reference/SKProduct_Reference/

<强>更新

  1. 您需要执行加载可用产品的请求
  2. var productID:NSSet = NSSet(object: “product_id_on_itunes_connect”);
    var productsRequest:SKProductsRequest = SKProductsRequest(productIdentifiers: productID);
    productsRequest.delegate = self;
    productsRequest.start();
    
    1. 请求delegate将返回SKProduct
    2. 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类别
      2. 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)!
            }
        }
        

答案 1 :(得分:2)

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

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

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