iPhone App:以编程方式获取应用价格

时间:2014-02-11 12:07:06

标签: iphone objective-c app-store

如何在美国商店的代码中获取iPhone应用价格?喜欢0.99 $或免费

是否有任何Objective-C代码有帮助?

我想今天出席率。

以下是一个类似的问题:Programmatically identify if an app is paid or free 在这个他们建议解析itc链接,但我不知道如何解析..

有简单的方法吗?

2 个答案:

答案 0 :(得分:6)

为了满足您的好奇心,您可以使用iTunes Search API

NSData *jsonData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://itunes.apple.com/lookup?id=412828831"]]; // add &country=XX for specific country, default is US
if (jsonData) {
    NSError *error;
    NSDictionary *json = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
    NSArray *results = json[@"results"];
    NSDictionary *firstResult = [results firstObject];

    NSLog(@"\"%@\" is currently available for %@(%@)", firstResult[@"trackName"], firstResult[@"formattedPrice"], firstResult[@"price"]);
}

在您的真实应用中,您可以检查捆绑包标识符是否与广告支持的应用的标识符匹配:

if ([[[NSBundle mainBundle] bundleIdentifier] isEqualToString:@"com.myname.myapp.withAds"]) {
    // show ads
}
else {
    // don't show ads

}

您希望避免向网络发送无用的请求。这会花费电池寿命,在某些情况下(具有数量限制的合同)也会花费。捆绑标识符将是更好的选择。

我会使用预处理器宏完全硬编码。因为在这种情况下,我不需要提供广告框架。 Apple开始拒绝使用advertisingIdentifier而不显示广告的应用。并且使用广告标识符(即任何广告SDK)和不应该显示广告的应用程序发布广告SDK可能会导致拒绝。

答案 1 :(得分:1)

您通常不应该尝试直接查询商店(尽管有可用的API,您可以使用NSNumberFormatter进行显示)。而是使用SKStoreProductViewController来提供您感兴趣的产品的信息。