当前位置:  开发笔记 > 编程语言 > 正文

如何获取UIWebView用户代理

如何解决《如何获取UIWebView用户代理》经验,为你挑选了2个好方法。

我在使用一台远程服务器时遇到问题.我的应用程序使用[NSData initWithContentsOfURL:]方法向服务器发出请求,作为响应,我得到了我打开的网站的网址UIWebView.

问题是这些请求具有不同的User-Agent,并且服务器无法正确地为我服务,因为它期望我使用相同的User-Agent发送所有请求.我知道如何更改用户代理(例如,在UIWebView(iPhone SDK)中更改用户代理)但我真正想要的是以某种方式获取UIWebView用户代理并将其设置为[NSData initWithContentsOfURL:]以避免服务器端出现问题



1> 小智..:

我刚遇到类似的问题,需要让NSURLConnection发送的用户代理与UIWebView发送的用户代理匹配.我的解决方案是创建一个UIWebView,然后使用javascript来提取用户代理.

UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectZero];
NSString* secretAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];



2> JohnK..:

正如@nate提到上面,你可以在网页视图调用JavaScript:

UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectZero];
NSString* secretAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];

但是调用新的Javascript有点hacky并且创建一个零大小的webView是无偿的,因为你已经有了一个你正在处理的webView.

或者,您可以简单地使用您给定的本机方法webView:

NSString* ua = [webView.request valueForHTTPHeaderField:@"User-Agent"];
NSLog(@"User-Agent = %@", ua);

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有