Разработка для iOS: Как я могу заставить UIWebView загрузить немобильную версию Facebook?

#iphone #ios #facebook #ipad

#iPhone #iOS #Facebook #iPad

Вопрос:

Я погружаюсь в разработку iOS, и когда я пытаюсь загрузить определенную Facebook Fan Page в UIWebView, загружается мобильная версия сайта, которая загружает только стену страницы вентилятора вместо конкретной вкладки, которую мне нужно загрузить. В версии моего приложения для iPad UIWebView загружает обычную, немобильную версию Facebook и отлично загружает вкладку. Как я могу заставить UIWebView на iPhone загрузить обычную версию Facebook?

Ответ №1:

Facebook, скорее всего, анализирует пользовательский агент, чтобы определить, какую версию обслуживать. Если это так, то изменение пользовательского агента на пользовательский агент браузера для настольных компьютеров приведет facebook к изменению того, какая версия страницы обслуживается. Вы можете изменить пользовательский агент в NSMutableURLRequest следующим образом:

 [request setValue:@"some-user-agent" forHTTPHeaderField:@"User_Agent"];
  

Комментарии:

1. Спасибо, jaminguy, это сработало! Кстати, при настройке поля user agent вы должны использовать «User_Agent». При чтении поля user agent используется «User-Agent» (обратите внимание на подчеркивание в первом).

2. Кроме того, для тех, кто пытается выяснить, какое значение установить, вот код, который я использовал… [запросить setValue: [NSString stringWithFormat:@»%@ Safari /528.16″, [запросить valueForHTTPHeaderField:@»User-Agent»]] для httpheaderfield:@»User_Agent»];

Ответ №2:

Сделайте это в viewDidLoad (или где-нибудь еще перед загрузкой UIWebView):

 NSDictionary *userAgent = @{ @"UserAgent" : @"Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0" };
[[NSUserDefaults standardUserDefaults] registerDefaults:userAgent];