首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >加载桌面版本WKWebView iOS 9

加载桌面版本WKWebView iOS 9
EN

Stack Overflow用户
提问于 2015-10-30 10:47:39
回答 3查看 4.3K关注 0票数 1

直到最近

代码语言:javascript
运行
复制
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

因此,我的新问题是,这些用户代理字符串多久会发生一次变化,我的应用程序是否有办法自动更新到最新的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-14 16:42:57

帮助那些在这里寻找答案的人。解决办法是

代码语言:javascript
运行
复制
UserDefaults.standard.register(defaults: ["UserAgent" : "Chrome Safari"])
票数 3
EN

Stack Overflow用户

发布于 2018-04-04 08:56:58

Swift 4:

代码语言:javascript
运行
复制
@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"
}
票数 4
EN

Stack Overflow用户

发布于 2015-12-21 16:09:35

解决这个问题的一种方法是设置applicationNameForUserAgent属性WKWebViewConfiguration。

默认值是"Mobile/13C75",但您可以使用"Chrome /23.0.1271.6Safari/537.11“或”Chrome“设置它,您将得到请求的URL的桌面版本。

代码语言:javascript
运行
复制
WKWebViewConfiguration *wkWebConfig = [[WKWebViewConfiguration alloc] init];    
wkWebConfig.applicationNameForUserAgent = @"Chrome Safari";    
WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectZero
                                        configuration:wkWebConfig];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33434153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档