Как настроить заголовок "User-Agent" UIWebView в Swift

Я использую Xcode 6 для приложения iOS с Swift. У меня есть простой ViewController со встроенным UIWebView. Вы можете найти код ниже. Теперь я хочу изменить заголовок User-Agent HTTP. Я попытался использовать метод setValue NSURLRequest, но он не работал (см. Строку без комментирования). Кто-нибудь знает, как это сделать?

import UIKit

class WebViewController: UIViewController {

    @IBOutlet weak var webView: UIWebView!

    override func viewDidAppear(animated: Bool) {
        var url = NSURL(string: "https://www.samplepage.com")

        var request = NSMutableURLRequest(URL: url)

        // request.setValue("Custom-Agent", forHTTPHeaderField: "User-Agent")

        webView.loadRequest(request)
    }
}

Ответы

Ответ 1

Это изменит агент любого вызова, сделанного через "нормальный" стек.

Swift 2:

NSUserDefaults.standardUserDefaults().registerDefaults(["UserAgent": "Custom-Agent"])

Swift 3:

UserDefaults.standard.register(defaults: ["UserAgent": "custom value"])

Ответ 2

Если вы хотите добавить существующую строку пользовательского агента (полезно для поддержки динамических веб-страниц, которые адаптируются к пользовательскому агенту), вы можете использовать следующее.

let userAgent = UIWebView().stringByEvaluatingJavaScriptFromString("navigator.userAgent")! + " Custom-Agent"
NSUserDefaults.standardUserDefaults().registerDefaults(["UserAgent" : userAgent])