Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UIImage: How to get website tab icon

I'm developing an RSS Reader and I need to get the favicon for each feed. For example, if my feed is google.com, I'd like to get the "G" icon and put it into a UIImage or something. Any ideas on how to achieve this?

like image 878
Alex Takashi Tanabe Avatar asked Feb 02 '12 23:02

Alex Takashi Tanabe


2 Answers

The easiest way to go would be to use 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];

That should work.

You would just have to replace the domain where you want to query your icon.

like image 157
El Developer Avatar answered Sep 28 '22 08:09

El Developer


If you want the favicon, try calling this URL: http://www.google.com/s2/favicons?domain=<rss_domain> from within your app:

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

Otherwise, an RSS channel's metadata has an optional element, <image>, which is described here: http://www.rssboard.org/rss-specification#ltimagegtSubelementOfLtchannelgt

For example:

<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>
        ...

This image will typically be larger than a site's favicon, and likely not-square, but with some clever cropping and scaling, it can work as an icon if a feed's favicon isn't available.

like image 45
lillialexis Avatar answered Sep 28 '22 09:09

lillialexis