UIWebView没有使用loadRequest加载移动版网站

时间:2011-12-17 02:01:47

标签: ios mobile uiwebview

我正在尝试使用UIWebView在我的应用中嵌入移动版网站。但是,当我执行以下操作时:

NSURL *url = [NSURL URLWithString:webLink];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[self.webView loadRequest:request];

加载了该​​网站的完整版本。然后,当我点击此页面中的任何链接时,它将处理该网站的移动版本(从一开始就按照我的意愿)。

我试过搞乱用户代理,没有运气。我不认为它正在考虑用户代理来确定是否加载页面的移动版本,因为我将我的Firefox用户代理设置为iPhone,它仍然继续加载完整版本。

如果它有帮助,我试图加载的网站是一个留言板,使用IP Board 3.1.4。我尝试在线查看它是如何确定是否显示移动版本,没有运气。

2 个答案:

答案 0 :(得分:1)

我今天找到了解决问题的方法。

我在IP Board支持论坛上发布了我的问题,并得到回复说IP板检查用户代理中的“iPhone”或“mobileApp”cookie。由于弄乱用户代理对我不起作用,我采用了后一种方法。

我将此代码放入appdelegate中的applicationDidBecomeActive方法:

[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];

NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
[cookieProperties setObject:@"mobileApp" forKey:NSHTTPCookieName];
[cookieProperties setObject:@"1" forKey:NSHTTPCookieValue];
[cookieProperties setObject:@"www.example.com" forKey:NSHTTPCookieDomain];
[cookieProperties setObject:@"www.example.com" forKey:NSHTTPCookieOriginURL];
[cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
[cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];

NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];

PS:我在另一个关于cookie的stackoverflow问题中找到了这个cookie解决方案。

答案 1 :(得分:0)

如果网站没有完整的移动版本,那么你无能为力。 :(