iOS UIWebView RSS, чтобы больше походить на Safari и оставаться внутри приложения - PullRequest
4 голосов
/ 09 июня 2011

Я создаю приложение для чтения RSS ... но я заметил, что UIWebView отображает ленту RSS совсем иначе, чем Safari.

Это лента RSS ... http://www.sigmapi2.org/index.php?option=com_ninjarsssyndicator&feed_id=2&format=raw

Вот как я хочу, чтобы мой UIWebView выглядел ... это скриншот с iOS 'Mobile Safari enter image description here

NSURL *url = [NSURL URLWithString:@"http://www.sigmapi2.org/index.php?option=com_ninjarsssyndicator&feed_id=1&format=raw"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView1 loadRequest:request];}

создает пустую страницу в UIWebView

И этокод ниже ... (Адрес взят из мобильного сафари, когда он загружал RSS-канал так, как я этого хотел) ...

    NSURL *url = [NSURL URLWithString:@"http://reader.mac.com/mobile/v1/www.sigmapi2.org/index.php?option=com_ninjarsssyndicator&feed_id=1&format=raw"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView1 loadRequest:request];}

показывает это ... enter image description here

любойПомощь будет принята с благодарностью.

Ответы [ 2 ]

2 голосов
/ 10 июня 2011

Вам необходимо создать парсер XML.UIWebView не обладает теми же возможностями, что и Safari.Лучший анализатор XML, который я нашел здесь: https://github.com/mwaterfall/MWFeedParser

1 голос
/ 15 февраля 2012

Вам нужно реализовать URL, который должен отличаться от baseurl.

NSString * userAgent = @"Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+                  (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3";
NSString * urlString = @"http://reader.mac.com";
NSURL *URL = [NSURL URLWithString:urlString];
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:URL];
[req setValue:userAgent forHTTPHeaderField:@"User-Agent"];
NSURLResponse* response = nil;
NSError* error = nil;
NSData* data = [NSURLConnection sendSynchronousRequest:req
                                         returningResponse:&response
                                                     error:&error];
[self.article loadData:data MIMEType:@"text/html" textEncodingName:@"utf-8" baseURL:URL];
...