Как настроить заголовок "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])