WKWebView 将 google 搜索结果显示为原始 html
WKWebView shows google search result as raw html
我正在尝试使用 iOS WKWebView 在我正在开发的应用程序中添加网络浏览器。
但是 WKWebView 加载 html 的 google 搜索结果。
https://i.imgur.com/LJemP75.jpg
这是我使用的部分代码:
let configuration = WKWebViewConfiguration()
configuration.allowsInlineMediaPlayback = true
webView = WKWebView(frame: CGRect.zero, configuration: configuration)
webView.translatesAutoresizingMaskIntoConstraints = false
webView.addObserver(self, forKeyPath: "estimatedProgress", options: .New, context: nil)
webView.navigationDelegate = self
webView.UIDelegate = self
webviewHolder.addSubview(webView)
webView.scrollView.backgroundColor = UIColor.clearColor()
webView.backgroundColor = UIColor.clearColor()
webView.opaque = false
webView.clipsToBounds = false
webView.scrollView.clipsToBounds = false
对于 WKNavigationDelegate 和 WKUIDelegate 实现:
//MARK: WKNavigationDelegate
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
pageLoaded = true
updateBarButtons()
addressBarTextField.text = webView.URL?.absoluteString
UIApplication.sharedApplication().networkActivityIndicatorVisible = false
}
func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) {
cantConnectView.hidden = false
webView.hidden = true
}
func webView(webView: WKWebView, didFailNavigation navigation: WKNavigation!, withError error: NSError) {
cantConnectView.hidden = false
webView.hidden = true
UIApplication.sharedApplication().networkActivityIndicatorVisible = false
}
func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
updateBarButtons()
addressBarTextField.text = webView.URL?.absoluteString
UIApplication.sharedApplication().networkActivityIndicatorVisible = true
}
func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
decisionHandler(.Allow)
}
func webView(webView: WKWebView, decidePolicyForNavigationResponse navigationResponse: WKNavigationResponse, decisionHandler: (WKNavigationResponsePolicy) -> Void) {
decisionHandler(.Allow)
}
//MARK: WKUIDelegate
func webView(webView: WKWebView, createWebViewWithConfiguration configuration: WKWebViewConfiguration, forNavigationAction navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
if navigationAction.targetFrame == nil {
webView.loadRequest(navigationAction.request)
}
return nil
}
任何使 WKWebView 加载 google 正确搜索的想法?
已使用 Safari 的用户代理修复它
if #available(iOS 9.0, *) {
webView.customUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13D15 Safari/601.1"
}
我正在尝试使用 iOS WKWebView 在我正在开发的应用程序中添加网络浏览器。
但是 WKWebView 加载 html 的 google 搜索结果。 https://i.imgur.com/LJemP75.jpg
这是我使用的部分代码:
let configuration = WKWebViewConfiguration()
configuration.allowsInlineMediaPlayback = true
webView = WKWebView(frame: CGRect.zero, configuration: configuration)
webView.translatesAutoresizingMaskIntoConstraints = false
webView.addObserver(self, forKeyPath: "estimatedProgress", options: .New, context: nil)
webView.navigationDelegate = self
webView.UIDelegate = self
webviewHolder.addSubview(webView)
webView.scrollView.backgroundColor = UIColor.clearColor()
webView.backgroundColor = UIColor.clearColor()
webView.opaque = false
webView.clipsToBounds = false
webView.scrollView.clipsToBounds = false
对于 WKNavigationDelegate 和 WKUIDelegate 实现:
//MARK: WKNavigationDelegate
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
pageLoaded = true
updateBarButtons()
addressBarTextField.text = webView.URL?.absoluteString
UIApplication.sharedApplication().networkActivityIndicatorVisible = false
}
func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) {
cantConnectView.hidden = false
webView.hidden = true
}
func webView(webView: WKWebView, didFailNavigation navigation: WKNavigation!, withError error: NSError) {
cantConnectView.hidden = false
webView.hidden = true
UIApplication.sharedApplication().networkActivityIndicatorVisible = false
}
func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
updateBarButtons()
addressBarTextField.text = webView.URL?.absoluteString
UIApplication.sharedApplication().networkActivityIndicatorVisible = true
}
func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
decisionHandler(.Allow)
}
func webView(webView: WKWebView, decidePolicyForNavigationResponse navigationResponse: WKNavigationResponse, decisionHandler: (WKNavigationResponsePolicy) -> Void) {
decisionHandler(.Allow)
}
//MARK: WKUIDelegate
func webView(webView: WKWebView, createWebViewWithConfiguration configuration: WKWebViewConfiguration, forNavigationAction navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
if navigationAction.targetFrame == nil {
webView.loadRequest(navigationAction.request)
}
return nil
}
任何使 WKWebView 加载 google 正确搜索的想法?
已使用 Safari 的用户代理修复它
if #available(iOS 9.0, *) {
webView.customUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13D15 Safari/601.1"
}