使用WKWebView包装 - 在WKWebView中加载所有链接

时间:2016-10-08 09:37:55

标签: ios objective-c swift wkwebview

www.example.com/batmanpage允许您通过Safari打开外部链接(与基本网址不同)。
但是,有时您想在WKWebView内打开所有链接。
对于例如,假设你有一个基本网址WKWebView,但你有一个链接"https://trader.finmarkets.com",你也希望在"https://secure.transactions.finmarkets.com"内打开,而不使用UIApplication.shared.open(url),它将在外部打开

问题是:
WKWebView
(当然除了电子邮件和电话号码)

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
    if navigationAction.navigationType == .LinkActivated  {
        if let newURL = navigationAction.request.URL &&
            UIApplication.sharedApplication().canOpenURL(newURL) &&
            UIApplication.sharedApplication().openURL(newURL) {
                print(newURL)
                print("User clicked on link. Open it internally.")
                decisionHandler(.Allow)
        } else {
            print("Cannot open URL")
        }
    } else {
        print("Not a user click")
    }
}

您可能需要稍微调整一下以使其完美地工作,但我认为它可能与您正在寻找的方式相符。