14

我正在寻找一种从应用程序 ID 获取应用程序图标的方法。你知道怎么做吗?请分享方法。谢谢。

例如 Instagram,我要查找的 id 是:id389801252

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

我想得到这张图片:

在此处输入图像描述

4

3 回答 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];

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

于 2012-12-22T15:56:19.247 回答
2

仅供参考,您也可以使用应用程序的捆绑包 ID:

http://itunes.apple.com/lookup?bundleId=com.burbn.instagram

于 2018-12-19T09:23:06.937 回答
0

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

于 2020-11-11T02:16:17.790 回答