Мое приложение имеет UIWebViews, некоторые сайты загрузки, где мне нужна настольная версия сайта, некоторые сайты загрузки, где мне нужна мобильная версия сайта.Установить различные User-агенты для нескольких UIWebViews
Поэтому я установил пользовательский агент для пользовательского агента или мобильного пользователя-агента для достижения этого.
Например, если я хочу UIWebView, чтобы загрузить версию Desktop на сайт, я просто запустить этот код прямо перед:
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
Проблема в том, что это, конечно, является установка переменной NSUserDefaults, то есть для любого UIWebView в моем приложении, которое загружает после этого, оно будет использовать пользовательский агент рабочего стола. Я могу просто щелкнуть NSUserAgent по мере необходимости между рабочим столом и мобильным телефоном и загрузить соответственно, но иногда моему приложению требуется одновременное одновременное загрузку двух пользовательских интерфейсов UIWebView, одного мобильного телефона, одного рабочего стола.
Есть ли способ установить пользовательский агент UIWebView для указанного UIWebView?
Я предполагаю, что это будет включать swizzling методы NSUrlRequest или что-то еще? Я очень мало знаю об этом материале
Не знаю, что о WKWebView –
Спасибо за редактирование. Я забыл, что они не добавили этого до iOS 9. – dgatwood
Не беспокойтесь! Это помогает моему текущему проекту тонну, перейдя на WKWebView сегодня вечером! –