WKWebView не открывает ссылку
Всем привет! Подскажите пожалуйста, в чем может быть проблема.
Через WKWebView перехожу на https://ya.ru/, там делаю поиск, например "Википедия", после чего пытаюсь открыть первую же ссылку, но ничего не происходит.
import UIKit
import WebKit
class WebViewController: UIViewController {
@IBOutlet weak var webViewOutlet: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
self.webViewOutlet.load(URLRequest(url: URL(string: "https://ya.ru/")!))
self.webViewOutlet.allowsBackForwardNavigationGestures = true
}
}
Ответы (1 шт):
Автор решения: NSA-bot
→ Ссылка
Вам нужно добавить протокол, указать его делегата и добавить метод. Я комментариями отметил места, где добавил все это в ваш код.
import UIKit
import WebKit
class WebViewController: UIViewController, WKUIDelegate { // Здесь протокол WKUIDelegate
@IBOutlet weak var webViewOutlet: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
self.webViewOutlet?.uiDelegate = self // Делегат
self.webViewOutlet.load(URLRequest(url: URL(string: "https://ya.ru/")!))
self.webViewOutlet.allowsBackForwardNavigationGestures = true
}
// И этот метод
func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
if navigationAction.targetFrame == nil {
webView.load(navigationAction.request)
}
return nil
}
}