获取UIWebView内部点击链接的URL使用Swift 2

时间:2016-05-27 02:25:53

标签: ios url uiwebview swift2 uitextfield

我有这样的UITextField和UIWebView: enter image description here

但是当我点击webview中的链接时,上面的文本字段没有更改为点击的网址。

我尝试:

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {

    let scheme = request.URL!
    print(scheme)
}

和此:

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    if navigationType == .LinkClicked {
        print(request.URL.path)
    }
    return true
}

和此:

textfield.text = webview.request.URL.absoluteString

但它没有得到request.URL.path和webview.request.URL.absoluteString。

如何将texfield.text更改为从webview点击的URL?

1 个答案:

答案 0 :(得分:0)

如果您定位的是iOS 8及更高版本,请使用WKWebView代替UIWebView。来自Apple

  

在iOS 8及更高版本中运行的应用程序中,使用WKWebView类而不是使用UIWebView。另外,如果渲染不应运行JavaScript的文件,请考虑将WKPreferences属性javaScriptEnabled设置为false。

轻微的烦恼是可以通过Interface Builder拖放WKWebView,因此您必须将其添加到代码中的视图中。这是导航部分:

override func viewDidLoad() {
    super.viewDidLoad()

    self.webView.navigationDelegate = self
}

func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
    self.addressField.text = webView.URL!.absoluteString
}