gpt4 book ai didi

ios - 强制 WKWebView 显示桌面版本

转载 作者:搜寻专家 更新时间:2023-11-01 06:26:13 24 4
gpt4 key购买 nike

我有一个 NSViewController,它在 NSView 内的特定位置显示各种 WKWebView。如果 WKWebView 的框架变小 - 它会切换到网站的移动版本。有没有办法始终在 WKWebView 中显示完整(桌面版)网站?

我的第一个想法是注入(inject)一些 javascript 并将视口(viewport)设置为特定大小,以强制网站显示“桌面” View 。

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)

不幸的是,这不起作用,网站仍在缩放。为了演示我尝试实现的行为,请查看以下屏幕截图。

test

==编辑==

感谢您向我指出一些类似的问题。我尝试了以下适用于其他用户的解决方案。不幸的是我没有运气。也许 WKWebView 在 macOS 上有所不同 - 其他问题是关于 iOS 的。

  • NSUserDefaults
  • WKWebView 上设置 CustomUserAgent
  • WKWebViewConfiguration 上设置 ApplicationNameForUserAgent
  • User-Agent 添加到 NSUrlRequest

最佳答案

您应该更改用户代理,例如:

UserDefaults.standard.register(默认值:["UserAgent": "Chrome Safari"])

关于ios - 强制 WKWebView 显示桌面版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54215442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com