gpt4 book ai didi

objective-c - UIWebView iOS5 改变用户代理

转载 作者:IT老高 更新时间:2023-10-28 11:50:12 32 4
gpt4 key购买 nike

如何在 iOS 5 中更改 UIWebView 的用户代理?

到目前为止我做了什么:使用委托(delegate)回调,拦截 NSURLRequest,创建一个新的 url 请求并将它的用户代理设置为我想要的任何内容,然后下载数据并使用“loadData:MIMEType:....”重新加载 UIWebView。

问题:这会导致无限递归,我在其中加载数据,这会回调委托(delegate),实习生会调用委托(delegate)....

这是委托(delegate)方法:

- (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;
}

最佳答案

通过在您的应用启动时运行一次此代码来更改“UserAgent”默认值:

NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Your user agent", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];

编辑:我使用它取得了巨大的成功,但想添加更多细节。要获取用户代理,您可以启用“开发人员”菜单,设置用户代理,然后连接到此站点为您打印出来:WhatsMyAgent .同样,您可以使用任何类型的移动设备进行连接,也可以通过这种方式进行连接。顺便说一句,这在 iOS7+ 中仍然可以正常工作

关于objective-c - UIWebView iOS5 改变用户代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8487581/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com