Hai*_*med 3 nsurl uiwebview swift swift3
我有疑问,我该如何从中获取网址webView?我执行以下代码,然后得到了nil
代码我正在尝试:
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)
}
}
Run Code Online (Sandbox Code Playgroud)
Nir*_*v D 12
你没有得到url因为webView没有完成所请求的加载URL,你可以URL在webViewDidFinishLoad方法中得到它UIWebviewDelegate.为此,您需要设置webView当前的委托ViewController并需要实现UIWebviewDelegate.
webView.delegate = self
Run Code Online (Sandbox Code Playgroud)
现在您可以获取当前加载URL的webViewin webViewDidFinishLoad方法.
func webViewDidFinishLoad(_ webView: UIWebView) {
if let text = webView.request?.url?.absoluteString{
print(text)
}
}
Run Code Online (Sandbox Code Playgroud)
对于swift 5和swift 4.2使用let url = webView.url?.absoluteString:-
首先导入 WebKit :-
import WebKit
Run Code Online (Sandbox Code Playgroud)
然后添加协议:-
class ViewController: UIViewController, WKNavigationDelegate
Run Code Online (Sandbox Code Playgroud)
然后添加委托:-
//MARK:- WKNavigationDelegate
func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) {
print(error.localizedDescription)
}
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
print("Strat to load")
if let url = webView.url?.absoluteString{
print("url = \(url)")
}
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("finish to load")
if let url = webView.url?.absoluteString{
print("url = \(url)")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9854 次 |
| 最近记录: |