如何使用Swift 4.2在WebView中更改用户代理? [英] How do I change the user agent in my WebView using Swift 4.2?
问题描述
我正在努力使用swift 4.2的最新Xcode版本更改项目上的用户代理.
我想假装我是访问特定网站的Mac.请修改此代码并将其发布在评论中
到目前为止,这是我的代码.
class ViewController:UIViewController {@IBOutlet弱var webview:WKWebView!覆盖func viewDidLoad(){super.viewDidLoad()let userAgent ="Mozilla/5.0(Windows NT 5.1)AppleWebKit/537.36(KHTML,例如Gecko)Chrome/34.0.1847.116 Safari/537.36 Mozilla/5.0(iPad; U; CPU OS 3_2如Mac OS X; zh-cn)AppleWebKit/531.21.10(KHTML,例如Gecko)版本/4.0.4移动版/7B334b Safari/531.21.10"让myURL = NSURL(string:"http://website.com")让myURLRequest:NSURLRequest = URLRequest(URL:myURL!as URL)作为NSURLRequestwebview.load(myURLRequest作为URLRequest)myURLRequest.setValue(userAgent,forKey:"Mozilla/5.0(Macintosh; Intel Mac OS X 10_10_1)AppleWebKit/537.36(KHTML,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弱var webview:WKWebView!覆盖func viewDidLoad(){super.viewDidLoad()let userAgent ="Mozilla/5.0(Windows NT 5.1)AppleWebKit/537.36(KHTML,例如Gecko)Chrome/34.0.1847.116 Safari/537.36 Mozilla/5.0(iPad; U; CPU OS 3_2如Mac OS X; zh-cn)AppleWebKit/531.21.10(KHTML,例如Gecko)版本/4.0.4移动版/7B334b Safari/531.21.10"如果让myURL = URL(string:"http://website.com"){var myURLRequest = URLRequest(URL:myURL)myURLRequest.setValue(userAgent,forHTTPHeaderField:用户代理")webview.load(myURLRequest)}}}
I'm struggling with changing the user agent on my project using the latest Xcode version with swift 4.2 .
I want to pretend that I'm a Mac visiting a specific website. Please edit this code and post it in the comments
Here's my code so far.
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))
}
}
If I build it I receive this error:
![Error][2].
The problem i seeing here, first time loading without the user-agent
set and then setting it wrongly and put another request
Please check the appledoc, for setting up the HTTPHeaderField.
Based on your given code, the solution would be
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)
}
}
}
这篇关于如何使用Swift 4.2在WebView中更改用户代理?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!