请求桌面站点 WKWebview 在 Swift 4 中不工作
Request desktop site WKWebview not working in Swift 4
我尝试了几乎所有的东西,一个 Whosebug 和其他网站来请求 WKWebview 中的桌面版网站,但是 none 的解决方案对我有用。
我试过的链接如下
我尝试在上面的主题中通过评论答案来获得答案,但没有得到回复所以我在这里提出我的问题,我希望你不会将其标记为重复
这是我尝试过的许多实现中的一个
import UIKit
import WebKit
class ViewController: UIViewController {
var webview: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let config = WKWebViewConfiguration()
webview = WKWebView(frame: self.view.frame, configuration: config)
self.webview.uiDelegate = self
let url = URL(string: "https://quora.com/")!
var request = URLRequest(url: url)
let userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36"
request.addValue(userAgent, forHTTPHeaderField: "User-Agent")
webview.load(request)
//webview.customUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36"
self.view.addSubview(webview)
}
}
extension ViewController: WKUIDelegate {
}
我会请求,请在发布答案之前测试你的答案或建议,因为我已经尝试了很多其他的东西。
编辑-
以上示例代码运行良好,问题是更改用户代理不会立即反映,重新安装时用户代理更改会反映出来,所以我的问题是如何使用按钮切换请求桌面站点。
这是我测试过的代码:
class ViewController: UIViewController {
var webview: WKWebView?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
createWebView()
if let url = URL(string: "https://quora.com") {
load(url: url)
}
}
private func createWebView() {
let config = WKWebViewConfiguration()
let webview = WKWebView(frame: self.view.frame, configuration: config)
webview.uiDelegate = self
webview.navigationDelegate = self
self.webview = webview
self.view.addSubview(webview)
}
private func load(url: URL) {
var request = URLRequest(url: url)
let userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36"
request.addValue(userAgent, forHTTPHeaderField: "User-Agent")
webview?.load(request)
}
}
extension ViewController: WKNavigationDelegate {
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("\(#function)")
}
func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
print("\(#function): \(error)")
}
}
extension ViewController: WKUIDelegate {
}
生成的页面:
干杯!
我尝试了几乎所有的东西,一个 Whosebug 和其他网站来请求 WKWebview 中的桌面版网站,但是 none 的解决方案对我有用。
我试过的链接如下
我尝试在上面的主题中通过评论答案来获得答案,但没有得到回复所以我在这里提出我的问题,我希望你不会将其标记为重复
这是我尝试过的许多实现中的一个
import UIKit
import WebKit
class ViewController: UIViewController {
var webview: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let config = WKWebViewConfiguration()
webview = WKWebView(frame: self.view.frame, configuration: config)
self.webview.uiDelegate = self
let url = URL(string: "https://quora.com/")!
var request = URLRequest(url: url)
let userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36"
request.addValue(userAgent, forHTTPHeaderField: "User-Agent")
webview.load(request)
//webview.customUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36"
self.view.addSubview(webview)
}
}
extension ViewController: WKUIDelegate {
}
我会请求,请在发布答案之前测试你的答案或建议,因为我已经尝试了很多其他的东西。
编辑-
以上示例代码运行良好,问题是更改用户代理不会立即反映,重新安装时用户代理更改会反映出来,所以我的问题是如何使用按钮切换请求桌面站点。
这是我测试过的代码:
class ViewController: UIViewController {
var webview: WKWebView?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
createWebView()
if let url = URL(string: "https://quora.com") {
load(url: url)
}
}
private func createWebView() {
let config = WKWebViewConfiguration()
let webview = WKWebView(frame: self.view.frame, configuration: config)
webview.uiDelegate = self
webview.navigationDelegate = self
self.webview = webview
self.view.addSubview(webview)
}
private func load(url: URL) {
var request = URLRequest(url: url)
let userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36"
request.addValue(userAgent, forHTTPHeaderField: "User-Agent")
webview?.load(request)
}
}
extension ViewController: WKNavigationDelegate {
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("\(#function)")
}
func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
print("\(#function): \(error)")
}
}
extension ViewController: WKUIDelegate {
}
生成的页面:
干杯!