我有疑问,如何从webView
获取网址?
我执行以下代码,然后得到nil
Code I&m;尝试:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
webView.loadRequest(URLRequest(url: URL(string: "https://www.youtube.com/watch?v=Vv2zJErQt84")!))
if let text = webView.request?.url?.absoluteString{
print(text)
}
}
答案 0 :(得分:11)
由于webView
尚未完成对请求URL
的加载,因此您无法获取网址,您可以使用URL
webViewDidFinishLoad
方法获取UIWebviewDelegate
。为此,您需要使用当前webView
设置ViewController
的委托,并需要实施UIWebviewDelegate
。
webView.delegate = self
现在,您可以在URL
方法中获取webView
的当前加载webViewDidFinishLoad
。
func webViewDidFinishLoad(_ webView: UIWebView) {
if let text = webView.request?.url?.absoluteString{
print(text)
}
}
答案 1 :(得分:2)
这是一个 Swift 3 版本,请确保您已在课程dseclaration中添加UIWebViewDelegate
并在webView.delegate = self
中设置viewDidload()
:
func webViewDidFinishLoad(_ webView: UIWebView) {
UIApplication.shared.isNetworkActivityIndicatorVisible = false
let urlString = webView.request!.url!.absoluteString
print("MY WEBVIEW URL: \(urlString)")
}
答案 2 :(得分:2)
对于Swift 4和Swift 4.2,请使用SELECT *
FROM yourTable
WHERE Details::text LIKE '%"is_draft": "false"%';
:-
首先导入WebKit:-
let url = webView.url?.absoluteString
然后添加协议:-
import WebKit
然后添加代表:-
class ViewController: UIViewController, WKNavigationDelegate
答案 3 :(得分:0)
仅供参考:
如果要查看正在导航的URL以进行加载,请使用此委托方法。 navigationAction 专门显示正在导航的页面。它可以不同于 webview.url
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
super.webView(webView, decidePolicyFor: navigationAction, decisionHandler: decisionHandler)
let request = navigationAction.request
}