有没有办法在 iPhone 上的 Safari 上欺骗用户代理?
因此,例如,您将在具有嵌入式 Safari 浏览器的 iPhone 上创建一个应用程序,但是用户使用此浏览器访问的任何网站都不知道您在 iPhone 上使用 Safari,它会认为您在类似 Safari 上PC,甚至 IE/FireFox。
谢谢
有没有办法在 iPhone 上的 Safari 上欺骗用户代理?
因此,例如,您将在具有嵌入式 Safari 浏览器的 iPhone 上创建一个应用程序,但是用户使用此浏览器访问的任何网站都不知道您在 iPhone 上使用 Safari,它会认为您在类似 Safari 上PC,甚至 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 baseURL:nil]