Подделываете пользовательский агент встроенного браузера Safari на iPhone?
-
11-09-2019 - |
Вопрос
Есть ли способ подделать пользовательский агент в Safari на iPhone?
Например, вы можете создать приложение на iPhone со встроенным браузером Safari, однако любой веб-сайт, который пользователь посещает с помощью этого браузера, не будет знать, что вы используете Safari на iPhone, он будет думать, что вы используете что-то вроде Safari на iPhone. ПК или даже IE/FireFox.
Спасибо
Решение
Да, я думаю, ты можешь это изменить.Чтобы заставить его работать, потребуется немного поработать.
Вам придется вручную управлять всеми запросами.Делая собственные запросы данных.В этом запросе данных вы можете добавить 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];
Если вы встраиваете веб-браузер Safari в свое приложение, вы можете подписаться на его методы делегирования.Один из них уведомит ваше приложение о том, что Safari хочет загрузить URL-адрес, именно здесь вы перехватываете эту загрузку и самостоятельно получаете данные.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
теперь вы помещаете сюда свой код для загрузки данных.
Как только данные загрузятся.Верните ему строку данных в webView.Я установил «baseURL:nil», но вам, возможно, придется правильно установить правильный домен для этого приложения.
[webView loadHTMLString: newString baseURL: ноль]