我有这样的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?
答案 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
}