在 iOS 中使用 WKWebView 请求桌面站点

Request desktop sites using WKWebView in iOS

我四处搜索,但找不到不依赖网站本身(它们自己的 "desktop version" 按钮)来请求网站桌面版本的方法。

有办法吗?我想如果我能让它在 UIWebView 中工作,它可以在 WKWebView 上以同样的方式完成。

可能与用户代理有关:

NSUserDefaults.standardUserDefaults().registerDefaults(["UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A"])

我从这个来源找到了用户代理字符串:http://www.useragentstring.com/pages/Safari/

如果你只关注 iOS 9 版本的 WKWebView,有一个 属性 customUserAgent.

// Safari's User Agent (OS X 10.10)
webview.customUserAgent = @"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.99 Safari/537.36";
// Reload webview
[webview reloadFromOrigin];

customUserAgent的值为nil时,webview有默认的用户代理。

此外,最好使用JavaScript修改视口,网站可以通过它来判断设备类型。

至于iOS8版本的WKWebView,NSUserDefaults技巧是唯一的方法。在创建 WKWebView 实例之前设置它。