Как изменить пользовательский агент в моем WebView с помощью Swift 4.2? - PullRequest
0 голосов
/ 17 ноября 2018

Я борюсь с изменением пользовательского агента в моем проекте, используя последнюю версию XCode с swift 4.2.

Я хочу сделать вид, что я Mac, посещая определенный веб-сайт.Пожалуйста, отредактируйте этот код и опубликуйте его в комментариях

Вот мой код.

class ViewController: UIViewController {
    @IBOutlet weak var webview: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let userAgent = "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36 Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10"
        let myURL = NSURL(string: "http://website.com")
        let myURLRequest:NSURLRequest = URLRequest(url: myURL! as URL) as NSURLRequest
        webview.load(myURLRequest as URLRequest)
        myURLRequest.setValue(userAgent, forKey: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36")

        webview.load(URLRequest(url: myURL! as URL))
    }
}

Если я его создаю, я получаю эту ошибку:

Error.

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

WKWebView имеет свойство с именем customUserAgent именно для этой цели:

let customUserAgent = "Mozilla/5.0 ..." // Your custom user agent string go here"
webView.customUserAgent = customUserAgent
0 голосов
/ 17 ноября 2018

Проблема, которую я вижу здесь, при первой загрузке без установленного user-agent, а затем при неправильной установке и установке другого запроса

Пожалуйста, проверьте appledoc , для настройки HTTPHeaderField.

Исходя из вашего кода, решение будет

class ViewController: UIViewController {
     @IBOutlet weak var webview: WKWebView!

     override func viewDidLoad() {
        super.viewDidLoad()

        let userAgent = "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36 Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10"
        if let myURL = URL(string: "http://website.com") {
            var myURLRequest= URLRequest(url: myURL)
            myURLRequest.setValue(userAgent, forHTTPHeaderField:"user-agent")
            webview.load(myURLRequest)
        }

    }
}
...