如何在美国商店的代码中获取iPhone应用价格?喜欢0.99 $或免费
是否有任何Objective-C代码有帮助?
我想今天出席率。
以下是一个类似的问题:Programmatically identify if an app is paid or free 在这个他们建议解析itc链接,但我不知道如何解析..
有简单的方法吗?
答案 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
来提供您感兴趣的产品的信息。