Подделываете пользовательский агент встроенного браузера Safari на iPhone?

StackOverflow https://stackoverflow.com/questions/1095045

Вопрос

Есть ли способ подделать пользовательский агент в Safari на iPhone?

Например, вы можете создать приложение на iPhone со встроенным браузером Safari, однако любой веб-сайт, который пользователь посещает с помощью этого браузера, не будет знать, что вы используете Safari на iPhone, он будет думать, что вы используете что-то вроде Safari на iPhone. ПК или даже IE/FireFox.

Спасибо

Это было полезно?

Решение

Да, я думаю, ты можешь это изменить.Чтобы заставить его работать, потребуется немного поработать.

  1. Вам придется вручную управлять всеми запросами.Делая собственные запросы данных.В этом запросе данных вы можете добавить HTTP-заголовок для User-Agent, который переопределит заголовки по умолчанию.

    NSMutableURLRequest* urlRequest = [[[NSMutableURLRequest alloc] initWithURL:requestURL] autorelease];

    [urlRequest setHTTPMethod: @"POST"];
    [urlRequest setHTTPBody: [nvpString  dataUsingEncoding:NSUTF8StringEncoding]];
    [urlRequest addValue:@"Your+User+Agent+String" forHTTPHeaderField:@"User-Agent"];
    receivedData = [[NSMutableData alloc] retain];
    [receivedData setLength:0];
    
    [NSURLConnection connectionWithRequest: urlRequest delegate: self];
    
  2. Если вы встраиваете веб-браузер Safari в свое приложение, вы можете подписаться на его методы делегирования.Один из них уведомит ваше приложение о том, что Safari хочет загрузить URL-адрес, именно здесь вы перехватываете эту загрузку и самостоятельно получаете данные.

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
    

    теперь вы помещаете сюда свой код для загрузки данных.

  3. Как только данные загрузятся.Верните ему строку данных в webView.Я установил «baseURL:nil», но вам, возможно, придется правильно установить правильный домен для этого приложения.

    [webView loadHTMLString: newString baseURL: ноль]

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top