Próbowałem już coraz aktualny adres URL mojej UIWebView
z: webview.request.URL
. Niestety NSURL
był pusty. Coś tu nie tak? Pracuję z Xcode 3.2.2 beta 5.
Powyższy kod powinien zostać wykonany w UIWebView
delegacie didStartLoad
.
Próbowałem już coraz aktualny adres URL mojej UIWebView
z: webview.request.URL
. Niestety NSURL
był pusty. Coś tu nie tak? Pracuję z Xcode 3.2.2 beta 5.
Powyższy kod powinien zostać wykonany w UIWebView
delegacie didStartLoad
.
Odpowiedzi:
Możesz spróbować tego:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
window.location przez JS nie działało dla mnie niezawodnie, ale to:
currentURL = currentWebView.request.URL.absoluteString;
Źródło: http://mohrt.blogspot.com/2008/10/getting-url-from-uiwebview.html
Mark Sands
oto kod, którego używam do pobierania adresu URL za każdym razem, gdy przechodzisz do innego linku w widoku internetowym:
- (void)webViewDidFinishLoad:(UIWebView *)aWebView
{
self.url = aWebView.request.mainDocumentURL;
}
webView.request.URL.absoluteString
powrocienil
Ja również stwierdziłem, że zatwierdzona powyżej odpowiedź nie była wiarygodna. Ale z niewielką modyfikacją wydaje się działać za każdym razem:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
Zwróć uwagę na dodanie „.href” do skryptu JavaScript, ponieważ jest on ukryty na końcu wiersza kodu.
To nie jest poprawne i zwróci zero:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
Jednak poniższy kod może uzyskać adres URL, ale URL może nie być aktualnym adresem URL:
NSString *url = _webView.request.URL.absoluteString;
Prawidłowy to:
NSString *currentURL = [_webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
- (void)webViewDidFinishLoad:(UIWebView *)webView{
NSURL *currentURL = [[webView request] URL];
NSLog(@"%@",[currentURL description]);
}
Próbowałem tego dla wyników wyszukiwania Google na iPhonie:
NSString* currentURL = webView.request.URL.absoluteString;
NSString* mainDocumentURL = webView.request.mainDocumentURL.absoluteString;
Obie zwracają ten sam ciąg!
Używam shouldStartLoadWithRequest
zdarzenia (UIWebViewDelegate) do przechwytywania aktualizacji adresów URL. request.mainDocumentURL.absoluteString
dostaniesz adres URL głównej strony internetowej (który zwykle jest tym, czego chcesz), a jednocześnie request.URL.absoluteString
zawiera CSS i JavaScript.
To zawsze działa. .
NSString* url= [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
W Szybko spróbuj tego,
func webViewDidFinishLoad(webView: UIWebView){
println(WebView.request?.mainDocumentURL)
}
Aby uzyskać aktualny adres URL WKWebView i UIWebview
Oto kod.
if (self.wkWebView) {
NSString *URL = self.wkWebView.title;
}else if(self.uiWebView) {
NSString *URL = self.uiWebView.request.title;
}