iPhone应用程序:如何通过应用程序ID获取应用程序图标?

14

我正在寻找一种获取应用程序图标的方法,该方法需要使用应用程序ID。您知道如何实现吗?请分享方法。谢谢。

例如,我正在寻找Instagram应用程序的ID:id389801252

https://itunes.apple.com/jp/app/instagram/id389801252?mt=8

我想要获取这张图片:

enter image description here

3个回答

24

我在谷歌上搜索了2分钟后写下了这个答案...只是关键词的问题!

使用iTunes Store的一个未记录已记录API是可以实现的。它可能会在未来发生变化,但在最近的过去似乎没有发生变化,所以这里就是解决方法...

NSString *idString = @"id389801252";

NSString *numericIDStr = [idString substringFromIndex:2]; // @"389801252"
NSString *urlStr = [NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@", numericIDStr];
NSURL *url = [NSURL URLWithString:urlStr];
NSData *json = [NSData dataWithContentsOfURL:url];

NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:json options:0 error:NULL];
NSArray *results = [dict objectForKey:@"results"];
NSDictionary *result = [results objectAtIndex:0];
NSString *imageUrlStr = [result objectForKey:@"artworkUrl100"]; // or 512, or 60

NSURL *artworkURL = [NSURL URLWithString:imageUrlStr];
NSData *imageData = [NSData dataWithContentsOfURL:artworkURL];
UIImage *artworkImage = [UIImage imageWithData:imageData];

请注意,这个程序使用NSURL API执行了两次同步往返,因此最好将其包装在后台线程中以获得最佳用户体验。将ID字符串(上面代码中的idString)提供给该程序,在最后,artworkImage将包含所需图像的UIImage。

@InderKumarRathore,我不明白你的问题在哪里。这段代码是可行的(已测试)。 - user529758
抱歉,我错过了这一行代码 NSString *numericIDStr = [idString substringFromIndex:2]; // @"389801252" - Inder Kumar Rathore
+1 @H2CO3 我正要在谷歌上搜索后写这个答案,但你先写了。无论如何,我想知道为什么会有 1024x1024 (artworkUrl100) 图标。并且认为它一定是为了视网膜 Macbook 设计的。 - Inder Kumar Rathore
@InderKumarRathore 谢谢。嗯,苹果有时会在使用API时对开发人员开一些不太好的玩笑,我怀疑我们刚碰到其中之一了... - user529758
@H2CO3:“(我在谷歌上搜索了2分钟后写下了这个答案……关键是使用正确的关键词!)”非常抱歉……我找不到方法……不管怎样,它起作用了!!非常感谢! - zono
显示剩余4条评论

3

0

不确定这是否仍然相关,但是苹果提供了一个iTunes Link Maker工具。如果您使用此工具查找您的应用程序,您还将看到它显示一个应用程序图标部分的位置。单击嵌入并从那里获取img链接。需要注意的一点是,我最终确实对url进行了一些调整,以找到所需的正确大小和格式(例如,您可以获得jpg渲染而不是png,或者选择任意大小,如128x128)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接