Агент пользователя не меняется в NSMutableURLRequest
Я знаю, что может быть несколько вопросов об этом, но я сталкиваюсь с проблемой, когда я пытаюсь установить новый "агент пользователя" для моего UIWebView. Вот что я делаю прямо сейчас:
NSURL *myUrl = [NSURL URLWithString:auxUrl];
NSMutableURLRequest *myRequest = [NSMutableURLRequest requestWithURL:myUrl];
NSMutableString *auxUserAgent = [[NSMutableString alloc] initWithString:[myRequest valueForHTTPHeaderField: @"User-Agent"]];
[auxUserAgent appendString:@"(iOS)"];
[myRequest setValue:auxUserAgent forHTTPHeaderField:@"User-Agent"];
NSLog(@"UA : %@",[myRequest valueForHTTPHeaderField: @"User-Agent"]);
Я пытаюсь добавить некоторый текст к фактическому агенту пользователя, и в консоли XCode он показывает новое значение агента пользователя.
2013-12-16 19:03:42.200 App[736:60b] UA: Mozilla / 5.0 (iPhone; процессор iPhone OS 7_0_4, как Mac OS X) AppleWebKit/537.51.1 (KHTML, как Gecko) Mobile / 11B554a (iOS)
Но когда я запускаю свое приложение, оно показывает старое. Вот скриншот пользовательского агента, показанного на веб-странице, которую я показываю в UIWebView:

Итак.. мои вопросы таковы: что я упускаю?? есть ли что-то в системе, что не позволяет разработчикам изменять эти данные??
Спасибо.
2 ответов:
Я "решил" свою проблему, поместив в didFinishLaunchingWithOptions из моего AppDelegate.m следующий код:
NSDictionary *dictionnary = [[NSDictionary alloc] initWithObjectsAndKeys:@"YOUR CUSTOM USER-AGENT", @"UserAgent", nil]; [[NSUserDefaults standardUserDefaults] registerDefaults:dictionnary];Дело в том, что я не могу добавить текст к самому агенту пользователя, но я могу записать данные, которые мне нужны, чтобы различать доступ к веб-странице из разных приложений или веб-браузеров.
Спасибо всем за вашу помощь.
Так дело не пойдет. UIWebView переопределяет поле
User-Agent.Если вы попытаетесь зарегистрировать
User-Agentв методеwebView:shouldStartLoadWithRequest:navigationType:, вы увидите, что он уже переопределен, однако вы можете использоватьNSURLConnectionдля загрузки вашего запроса с помощью пользовательскогоUser-Agent, а затем использовать методloadHTMLString:baseURL:или методloadData:MIMEType:textEncodingName:baseURL:изUIWebViewдля отображения загруженных данных изNSURLConnection.
Comments