UIWebView不能使用loadRequest加载站点的移动版本

我试图使用UIWebView在我的应用程序中embedded移动版本的网站。 但是,当我做到以下几点:

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

网站的完整版本被加载。 然后,当我点击这个页面中的任何一个链接时,它会处理网站的移动版本(就像我最初想要的那样)。

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

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

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

我在IP Board支持论坛上发布了我的问题,并得到了回应,说IP Board检查用户代理中的“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解决scheme在另一个关于cookie的stackoverflow问题。

如果网站没有完整的移动版本,那么你无法做到。 🙁