我正在尝试访问Swift 3中的UIWebView的URL。以下是我用来完成此操作的代码(我的webview的名称是RootView):
let currentURL : NSString = RootView.request?.URL?.absoluteString
但是,我收到错误消息"类型' URLRequest'没有会员' URL'"这阻止我编译。我知道以前的堆栈溢出用户已成功使用同一行代码,所以我不确定是什么阻止我也获取URL。问题可能在于苹果公司对Swift 3的改变吗?谢谢!
这是我完整的ViewController.swift文件,我把这段代码放在了:
import UIKit
class ViewController: UIViewController, UIWebViewDelegate {
@IBOutlet weak var RootView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
self.RootView.delegate = self
let url1 = URL (string: "https://www.google.com")!
RootView.loadRequest(URLRequest(url: url1))
RootView.scrollView.isScrollEnabled = true
RootView.isUserInteractionEnabled = true
let currentURL : NSString = RootView.request?.URL?.absoluteString
print(currentURL)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
答案 0 :(得分:0)
尝试删除"请求",并使用以下内容:
let currentURL:NSString = RootView.URL?.absoluteString
答案 1 :(得分:0)
您有三种方法可以访问网址
let currentURL : String? = RootView.request?.mainDocumentURL?.absoluteString
let currentURL : String? = RootView.request?.url?.absoluteString
let currenturl : String? = RootView.stringByEvaluatingJavaScript(from: "window.location.href")
但所有这三个值都会返回nil
,因为请求需要时间,他们不会准备好直到请求完成。试一试。
import UIKit
class URLResearchVC: UIViewController , UIWebViewDelegate {
@IBOutlet weak var RootView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
self.RootView.delegate = self
let url1 = URL (string: "https://www.google.com")!
RootView.loadRequest(URLRequest(url: url1))
RootView.scrollView.isScrollEnabled = true
RootView.isUserInteractionEnabled = true
let currentURL : String? = RootView.request?.mainDocumentURL?.absoluteString
let currentUrl : String? = RootView.request?.url?.absoluteString
let currenturl : String? = RootView.stringByEvaluatingJavaScript(from: "window.location.href")
print(currentURL)
print(currentUrl)
print(currenturl)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func webViewDidStartLoad(_ webView: UIWebView) {
print("-------")
print(webView.request?.mainDocumentURL)
print("-------")
print(webView.request?.url?.absoluteString)
print("-------")
print(webView.stringByEvaluatingJavaScript(from: "window.location.href"))
}
func webViewDidFinishLoad(_ webView: UIWebView) {
print("-------")
print(webView.request?.mainDocumentURL)
print("-------")
print(webView.request?.url?.absoluteString)
print("-------")
print(webView.stringByEvaluatingJavaScript(from: "window.location.href"))
}
}