Spoofing o agente de usuário de um navegador Safari embutido no iPhone?
-
11-09-2019 - |
Pergunta
Existe alguma maneira para falsificar o agente de usuário no Safari no iPhone?
Assim, por exemplo, você poderia criar um aplicativo no iPhone que tem o navegador Safari embutido, no entanto, qualquer site que o usuário visita com este navegador não sabe que estavam em Safari no iPhone, seria pensar que você está em algo como o Safari em um PC, ou até mesmo IE / FireFox.
Graças
Solução
Sim, eu acho que você poderia mudar isso. Seria necessário um pouco de trabalho ao redor para fazê-lo funcionar.
-
Você precisa gerenciar manualmente todas as solicitações. Ao fazer suas próprias solicitações de dados. Nestes dados pedido, pode adicionar um HTTPHeader para User-Agent que irá substituir os cabeçalhos padrão.
NSMutableURLRequest * urlRequest = [[[NSMutableURLRequest alloc] initWithURL: requestURL] disparo automático];
[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];
-
Se você incorporar o navegador Safari Web em seu aplicativo você pode se inscrever para os seus métodos de delegado. Um deles irá notificar seu aplicativo que safari gostaria de carregar uma URL, este é onde você pegar esta carga e obter os dados de seu self.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
Agora você colocar o seu código aqui para fazer o carregamento de dados.
-
Uma vez que os dados carregados. Dar-lhe a volta seqüência de dados para o webView. Tenho definir "baseURL: nil", mas você pode ter que definir isso corretamente para talvez o domínio correto para essa aplicação.
[webView loadHTMLString: newString baseURL: nil]