我已尝试使用UIWebView
获取webview.request.URL
的当前网址。
不幸的是NSURL
是空的。这里有什么不对吗?我正在使用Xcode 3.2.2 beta 5。
上述代码应在UIWebView
委托didStartLoad
中执行。
答案 0 :(得分:315)
currentURL = currentWebView.request.URL.absoluteString;
信用: http://mohrt.blogspot.com/2008/10/getting-url-from-uiwebview.html
答案 1 :(得分:55)
这是我每次导航到webview中不同链接时用来抓取网址的代码:
- (void)webViewDidFinishLoad:(UIWebView *)aWebView
{
self.url = aWebView.request.mainDocumentURL;
}
答案 2 :(得分:45)
你可以试试这个:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
答案 3 :(得分:36)
我也发现上面批准的答案不可靠。 但稍作修改,似乎每次都有效:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
注意添加" .href"到Javascript,因为它隐藏在代码行的末尾。
答案 4 :(得分:18)
这是不正确的,并且会返回一个零:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
但是,下面的代码可以获取网址,但网址可能不是当前网址:
NSString *url = _webView.request.URL.absoluteString;
正确的是:
NSString *currentURL = [_webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
答案 5 :(得分:8)
- (void)webViewDidFinishLoad:(UIWebView *)webView{
NSURL *currentURL = [[webView request] URL];
NSLog(@"%@",[currentURL description]);
}
答案 6 :(得分:4)
尝试在iPhone上使用谷歌搜索结果:
NSString* currentURL = webView.request.URL.absoluteString;
NSString* mainDocumentURL = webView.request.mainDocumentURL.absoluteString;
两者都返回相同的字符串!
答案 7 :(得分:3)
这里是我使用的代码:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[[[webView request] URL] absoluteString]]];
答案 8 :(得分:2)
我使用shouldStartLoadWithRequest
事件(UIWebViewDelegate)来捕获URL更新。 request.mainDocumentURL.absoluteString
会为您提供主网页的网址(通常是您想要的),而request.URL.absoluteString
将包含CSS和JavaScript。
答案 9 :(得分:2)
实现委托方法,
- (BOOL)webView:(UIWebView *)webview shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *URL = request.URL.absoluteString; NSLog(@"%@",URL);
}
网址是您确切需要的。
答案 10 :(得分:2)
这总是有效的。
NSString* url= [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
答案 11 :(得分:2)
由于不推荐使用UIWebView,因此WKWebview获取当前网址非常简单。
webView.url
答案 12 :(得分:1)
IN Swift 试试这个,
func webViewDidFinishLoad(webView: UIWebView){
println(WebView.request?.mainDocumentURL)
}
答案 13 :(得分:1)
获取WKWebView和UIWebview的当前URL
这是代码。
if (self.wkWebView) {
NSString *URL = self.wkWebView.title;
}else if(self.uiWebView) {
NSString *URL = self.uiWebView.request.title;
}