我如何让我的 WKWebview 浏览器在同一浏览器中打开链接,目前,如果我单击链接,它不会执行任何操作,只允许我在 Safari 中打开它。我怎样才能解决这个问题,以便当单击链接时它会在同一个 WkWebView 浏览器中打开?
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
@IBOutlet weak var webView: WKWebView!
//Web View
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: "http://tweetdeck.twitter.com/")
let request = URLRequest(url: url!)
webView.load(request)
webView.navigationDelegate = self
}
最佳答案
请使用 WKNavigationDelegate 的decidePolicyFor方法尝试此代码
extension ViewController: WKNavigationDelegate {
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
if navigationAction.navigationType == .linkActivated {
guard let url = navigationAction.request.url else {
decisionHandler(.allow)
return
}
let components = URLComponents(url: url, resolvingAgainstBaseURL: false)
if components?.scheme == "http" || components?.scheme == "https"
{
UIApplication.shared.open(url)
decisionHandler(.cancel)
} else {
decisionHandler(.allow)
}
} else {
decisionHandler(.allow)
}
}}
关于ios - 当我单击 WKWebView 浏览器中的链接时,它会转到 safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59223198/