直到最近
let url = NSURL (string:http://asite.com)
let request = NSMutableURLRequest(URL: url!)
//iOS loads the mobile version of asite.com which does not have the required DOM so we force the desktop version by setting new value forHTTPHeadrField
let newUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.6 Safari/537.11"
request.setValue(newUserAgent, forHTTPHeaderField: "User_Agent")
let config = WKWebViewConfiguration()
//even though we dont need to see it the webpage needs to appear but we set its frame to CGRectZero so its hidden from user
let ghostWebView : WKWebView = WKWebView(frame:CGRectZero, configuration: config)
ghostWebView.loadRequest(request)这将强制该网站的桌面版本。然而,它刚刚停止工作。不确定是什么时候但是最近。
知道为什么吗?
此外,谷歌的结果显示了一些用途
“用户-代理”
为HTTPHeaderField和其他人
"User_Agent“
这两者有什么区别?
更新:我通过将用户代理字符串更改为
"Mozilla/5.0 (Macintosh;Intel 10_10_1) AppleWebKit/537.36 (KHTML,类似壁虎) Chrome/41.0.2227.1 Safari/537.36“
这是我从
http://www.useragentstring.com
因此,我的新问题是,这些用户代理字符串多久会发生一次变化,我的应用程序是否有办法自动更新到最新的?
发布于 2016-09-14 16:42:57
帮助那些在这里寻找答案的人。解决办法是
UserDefaults.standard.register(defaults: ["UserAgent" : "Chrome Safari"])发布于 2018-04-04 08:56:58
Swift 4:
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
self.webView.customUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/601.6.17 (KHTML, like Gecko) Version/9.1.1 Safari/601.6.17"
}发布于 2015-12-21 16:09:35
解决这个问题的一种方法是设置applicationNameForUserAgent属性WKWebViewConfiguration。
默认值是"Mobile/13C75",但您可以使用"Chrome /23.0.1271.6Safari/537.11“或”Chrome“设置它,您将得到请求的URL的桌面版本。
WKWebViewConfiguration *wkWebConfig = [[WKWebViewConfiguration alloc] init];
wkWebConfig.applicationNameForUserAgent = @"Chrome Safari";
WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectZero
configuration:wkWebConfig];https://stackoverflow.com/questions/33434153
复制相似问题