Comment changer l'agent utilisateur de UIWebView dans iOS 5 ?
Ce que j'ai fait jusqu'à présent : En utilisant le rappel du délégué, intercepter la NSURLRequest, créer une nouvelle requête url et définir son agent utilisateur comme je le souhaite, puis télécharger les données et recharger l'UIWebView avec "loadData:MIMEType :....".
Problème : Cela provoque une récursion infinie, où je charge les données, qui rappelle le délégué, qui rappelle en interne le délégué.....
Voici la méthode du délégué :
- (BOOL)webView:(UIWebView *)aWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
dispatch_async(kBgQueue, ^{
NSURLResponse *response = nil;
NSMutableURLRequest *newRequest = [NSMutableURLRequest requestWithURL:[request URL]];
NSDictionary *headers = [NSDictionary dictionaryWithObject:
@"custom_test_agent" forKey:@"User-Agent"];
[newRequest setAllHTTPHeaderFields:headers];
[self setCurrentReqest:newRequest];
NSData *data = [NSURLConnection sendSynchronousRequest:newRequest
returningResponse:&response
error:nil];
dispatch_sync(dispatch_get_main_queue(), ^{
[webView loadData:data
MIMEType:[response MIMEType]
textEncodingName:[response textEncodingName]
baseURL:[request URL]];
});
});
return YES;
}