Как я могу изменить пользовательский агент UIWebView в iOS 5?
Что я сделал до сих пор:
Используя обратный вызов делегата, перехватите NSURLRequest, создайте новый URL-запрос и установите его user-agent как все, что я хочу, затем загрузите данные и перезагрузите UIWebView с помощью «loadData: MIMEType: ....».
Проблема:
Это вызывает бесконечную рекурсию, когда я загружаю данные, которые вызывают делегат обратно, а стажер вызывает делегат ....
Вот метод делегата:
- (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;
}