У меня есть NSViewController
, который отображает различные WKWebView
в определенных местах внутри NSView. Если рамка 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