ios - UIWebView 未使用 loadRequest 加载网站的移动版本

标签 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。我尝试在网上查看它如何确定是否显示移动版本,但没有成功。

最佳答案

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

我在 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 的 stackoverflow 问题中找到了这个 cookie 解决方案。

关于ios - UIWebView 未使用 loadRequest 加载网站的移动版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8542038/

相关文章:

ios - 使用 faSTLane 根据方案/目标自动从 plist 获取包标识符

ios - 使用 UIWebView 加载静态资源时出现随机错误

Android实现从左向右滑动动画

ios - 如何与在父 UIView 边界之外绘制的子 UIView 进行交互?

ios - 等到 popToRootViewControllerAnimated :YES animation is done

rest - 保护移动应用程序无需登录即可访问的 REST-API

jQuery 移动 : Using 'data-rel="back"' with dynamic page generation

android - 如何调整 Flutter TextField 的高度?

ios - 在多个 UIWebView 之间共享 HTML5 localstorage

ios - UITableViewCell 内的 UIWebView,检测到链接但不可点击