您可以实现
WKNavigationDelegate,添加
decidePolicyForNavigationAction方法,然后在其中检查navigationType和所请求的url。我在下面使用了
**google.com** ,但您可以将其更改为您的域:
Xpre 8.3•Swift 3.1或更高版本
import UIKitimport WebKitclass ViewController: UIViewController, WKNavigationDelegate { let webView = WKWebView() override func viewDidLoad() { super.viewDidLoad() webView.frame = view.bounds webView.navigationDelegate = self let url = URL(string: "https://www.google.com")! let urlRequest = URLRequest(url: url) webView.load(urlRequest) webView.autoresizingMask = [.flexibleWidth,.flexibleHeight] view.addSubview(webView) } func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { if navigationAction.navigationType == .linkActivated { if let url = navigationAction.request.url, let host = url.host, !host.hasPrefix("www.google.com"), UIApplication.shared.canOpenURL(url) { UIApplication.shared.open(url) print(url) print("Redirected to browser. No need to open it locally") decisionHandler(.cancel) } else { print("Open it locally") decisionHandler(.allow) } } else { print("not a user click") decisionHandler(.allow) } }}


