我有一个NSViewController
,它在NSView内的特定位置显示各种WKWebView
。如果WKWebView
的框架变小-它将切换到网站的移动版本。有没有办法始终在WKWebView
中显示完整的(台式机)网站?
我的第一个想法是注入一些JavaScript并将视口设置为特定大小,以强制网站显示“桌面”视图。
let viewportScriptString = "var meta=document.createElement('meta');meta.name=\"viewport\";meta.content=\"width=1920\";document.getElementsByTagName('head')[0].appendChild(meta);"
let viewportScript = WKUserScript(source: viewportScriptString, injectionTime: .AtDocumentStart, forMainFrameOnly: true)
let controller = WKUserContentController()
controller.addUserScript(viewportScript)
let config = WKWebViewConfiguration()
config.userContentController = controller
let nativeWebView = WKWebView(frame: CGRect.zero, configuration: config)
不幸的是,这不起作用,并且网站仍然处于缩放状态。为了演示我尝试实现的行为,请参见以下屏幕截图。
== EDIT ==
感谢您指出一些类似的问题。我尝试了以下适用于其他用户的解决方案。不幸的是我没有运气。也许WKWebView
在macOS上有所不同-其他问题与iOS有关。
NSUserDefaults
CustomUserAgent
上设置WKWebView
ApplicationNameForUserAgent
上设置WKWebViewConfiguration
User-Agent
添加NSUrlRequest
答案 0 :(得分:3)
您应该更改用户代理,例如:
UserDefaults.standard.register(defaults: ["UserAgent" : "Chrome Safari"])