请求桌面站点 WKWebview 在 Swift 4 中不工作

Request desktop site WKWebview not working in Swift 4

我尝试了几乎所有的东西,一个 Whosebug 和其他网站来请求 WKWebview 中的桌面版网站,但是 none 的解决方案对我有用。

我试过的链接如下

我尝试在上面的主题中通过评论答案来获得答案,但没有得到回复所以我在这里提出我的问题,我希望你不会将其标记为重复

这是我尝试过的许多实现中的一个

import UIKit
import WebKit

class ViewController: UIViewController {
    var webview: WKWebView!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let config = WKWebViewConfiguration()
        webview = WKWebView(frame: self.view.frame, configuration: config)
        self.webview.uiDelegate = self


        let url = URL(string: "https://quora.com/")!
        var request = URLRequest(url: url)
        let userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36"
        request.addValue(userAgent, forHTTPHeaderField: "User-Agent")
        webview.load(request)

        //webview.customUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36"
        self.view.addSubview(webview)

    }
}

extension ViewController: WKUIDelegate {
}

我会请求,请在发布答案之前测试你的答案或建议,因为我已经尝试了很多其他的东西。

编辑-

以上示例代码运行良好,问题是更改用户代理不会立即反映,重新安装时用户代理更改会反映出来,所以我的问题是如何使用按钮切换请求桌面站点。

这是我测试过的代码:

class ViewController: UIViewController {

    var webview: WKWebView?

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        createWebView()
        if let url = URL(string: "https://quora.com") {
            load(url: url)
        }
    }

    private func createWebView() {
        let config = WKWebViewConfiguration()
        let webview = WKWebView(frame: self.view.frame, configuration: config)
        webview.uiDelegate = self
        webview.navigationDelegate = self
        self.webview = webview
        self.view.addSubview(webview)
    }

    private func load(url: URL) {
        var request = URLRequest(url: url)
        let userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36"
        request.addValue(userAgent, forHTTPHeaderField: "User-Agent")
        webview?.load(request)
    }
}

extension ViewController: WKNavigationDelegate {
    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        print("\(#function)")
    }

    func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
        print("\(#function): \(error)")
    }
}

extension ViewController: WKUIDelegate {

}

生成的页面:

干杯!