有什么办法在iPhone上的Safari上欺骗用户代理?欺骗iPhone上的嵌入式Safari浏览器的用户代理?
因此,例如,您将在iPhone上创建一个具有嵌入式Safari浏览器的应用程序,但用户使用此浏览器访问的任何网站都不会知道您是在iPhone上的Safari上,它会认为您处于例如PC上的Safari,甚至IE/FireFox。
谢谢
有什么办法在iPhone上的Safari上欺骗用户代理?欺骗iPhone上的嵌入式Safari浏览器的用户代理?
因此,例如,您将在iPhone上创建一个具有嵌入式Safari浏览器的应用程序,但用户使用此浏览器访问的任何网站都不会知道您是在iPhone上的Safari上,它会认为您处于例如PC上的Safari,甚至IE/FireFox。
谢谢
是的我认为你可以改变这一点。这需要一些工作来解决问题。
您需要手动管理所有请求。通过自己的数据请求。 在这个数据请求中,您可以为User-Agent添加一个HTTPheader,它将覆盖默认标题。
NSMutableURLRequest * urlRequest = [[[[NSMutableURLRequest alloc] initWithURL:requestURL] autorelease];
[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];
如果您将Safari Web浏览器嵌入到应用程序中,则可以订阅其委托方法。其中一人会通知你的应用程序,Safari浏览器想要加载一个URL,这是你抓住这个负载并获取你自己的数据的地方。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
现在你把你的代码放在这里来做数据加载。
数据加载完成后。将它的数据字符串返回给webView。我已经设置了“baseURL:nil”,但是您可能必须正确设置这个应用程序的正确域名。
[webView的loadHTMLString:newString基本URL:无]
出于好奇,为什么你要这么做? – zpesk 2009-07-07 22:11:09
因为你想看到一个网站的完整版本,而不是瘫痪的移动版本。 – Fantius 2009-10-08 16:39:23