开发者社区> 问答> 正文

当我单击WKWebView浏览器中的链接时,它会转到Safari

如何让我的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

    }

展开
收起
游客5akardh5cojhg 2019-12-07 19:04:22 923 0
1 条回答
写回答
取消 提交回答
  • 请试用此代码,使用decdePolicyforWKNavigationDelegate方法

    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)
        }
    }}
    
    2019-12-07 19:04:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
WEB浏览器中即将发生的安全变化 立即下载
基于浏览器的实时构建探索之路 立即下载
基于浏览器的实时构建探索之路--玄寂 立即下载