UIImage: Как получить значок вкладки сайта - PullRequest
6 голосов
/ 03 февраля 2012

Я занимаюсь разработкой RSS Reader, и мне нужно получить значок для каждого канала.Например, если мой канал google.com, я хотел бы получить значок «G» и поместить его в UIImage или что-то в этом роде.Есть идеи, как этого добиться?

Ответы [ 3 ]

19 голосов
/ 03 февраля 2012

Самый простой способ - использовать Google:

NSString *myURLString = @"http://www.google.com/s2/favicons?domain=www.stackoverflow.com";
NSURL *myURL=[NSURL URLWithString: myURLString];
NSData *myData=[NSData dataWithContentsOfURL:myURL];

UIImage *myImage=[[UIImage alloc] initWithData:myData];

Это должно сработать.

Вам просто нужно заменить домен, где вы хотите запросить свой значок.

3 голосов
/ 03 февраля 2012

Если вы хотите значок, попробуйте позвонить по этому URL: http://www.google.com/s2/favicons?domain=<rss_domain> из вашего приложения:

[NSURLConnection connectionWithRequest:
    [NSURLRequest requestWithURL:
        [NSURL URLWithString:@"http://www.google.com/s2/favicons?domain=google.com"]]
                              delegate:self];

В противном случае в метаданных канала RSS есть необязательный элемент <image>, который описан здесь: http://www.rssboard.org/rss-specification#ltimagegtSubelementOfLtchannelgt

Например:

<channel>
    <language>en-us</language>
        <title>Scientific American - News</title>
            <image>
                <title>Scientific American</title>
                <link>http://www.scientificamerican.com</link>
                <width>144</width>
                <url>
                    http://www.scientificamerican.com/media/logo/SAlogo_144px.gif
                </url>
                <height>45</height>
            </image>
        ...

Это изображение обычно будет больше, чем значок сайта, и, вероятно, не квадратное, но с некоторыми умными кадрированием и масштабированием оно может работать как значок, если значок канала не доступен.

0 голосов
/ 03 февраля 2012

Если вы сохраните изображение на рабочем столе,

1) перетащить изображение в xcode 2) Перейти к конструктору интерфейса 3) Перейти к инспектору личности после выбора UIImage 4) В раскрывающемся списке image выберите имя своего изображения.

Надеюсь, это поможет!

...