如何使用 Swift 4.2 在我的 WebView 中更改用户代理?
How do I change the user agent in my WebView using Swift 4.2?
我正在努力使用最新的 Xcode 版本 swift 4.2 来更改我的项目的用户代理。
我想假装我是 Mac 访问特定网站。
请编辑此代码并在评论中post
到目前为止,这是我的代码。
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))
}
}
如果我构建它,我会收到此错误:
![错误][2].
我在这里看到的问题,第一次加载时没有设置 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)
}
}
}
WKWebView
有一个名为 customUserAgent 的 属性 正是为了这个目的:
let customUserAgent = "Mozilla/5.0 ..." // Your custom user agent string goes here"
webView.customUserAgent = customUserAgent
我正在努力使用最新的 Xcode 版本 swift 4.2 来更改我的项目的用户代理。
我想假装我是 Mac 访问特定网站。 请编辑此代码并在评论中post
到目前为止,这是我的代码。
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))
}
}
如果我构建它,我会收到此错误:
![错误][2].
我在这里看到的问题,第一次加载时没有设置 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)
}
}
}
WKWebView
有一个名为 customUserAgent 的 属性 正是为了这个目的:
let customUserAgent = "Mozilla/5.0 ..." // Your custom user agent string goes here"
webView.customUserAgent = customUserAgent