web-dev-qa-db-ja.com

UIWebViewの現在のURLを取得します

webview.request.URLUIWebViewの現在のURLを取得しようとしました。残念ながらNSURLは空でした。ここで何か問題がありますか? Xcode 3.2.2 beta 5を使用しています。

上記のコードは、UIWebViewデリゲートdidStartLoadで実行する必要があります。

110
danielreiser

Mattのバージョン はずっときれいです。この代わりに that oneを使用することをお勧めします

これを試すことができます:

NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
45
Rengers

jSを介したwindow.locationは、私にとっては確実に機能しませんでしたが、これは機能しました:

currentURL = currentWebView.request.URL.absoluteString;

クレジット: http://mohrt.blogspot.com/2008/10/getting-url-from-uiwebview.html

317
Matt Andersen

以下は、webview内の別のリンクに移動するたびにURLを取得するために使用するコードです。

- (void)webViewDidFinishLoad:(UIWebView *)aWebView
{
  self.url = aWebView.request.mainDocumentURL;
}
55
Mark Sands

私も、上記の承認された答えが信頼できないことがわかりました。しかし、わずかな修正を加えることで、毎回機能するようです:

NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];

Javascriptに「.href」が追加されていることに注意してください。これは、コード行の最後に隠されています。

36
SarahR

これは正しくなく、nilを返します。

NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];

ただし、以下のコードはURLを取得できますが、URLは現在のURLではない場合があります。

NSString *url = _webView.request.URL.absoluteString;

正しいものは次のとおりです。

NSString *currentURL = [_webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
18
D.D.
- (void)webViewDidFinishLoad:(UIWebView *)webView{
     NSURL *currentURL = [[webView request] URL];
     NSLog(@"%@",[currentURL description]);

}
8
sivasankar

IPhoneのGoogle検索結果でこれを試しました:

 NSString* currentURL = webView.request.URL.absoluteString;
 NSString* mainDocumentURL = webView.request.mainDocumentURL.absoluteString;

どちらも同じ文字列を返します!

4
Alex Stone

ここで私が使用するコード:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[[[webView request] URL] absoluteString]]];
3
Bobj-C

shouldStartLoadWithRequestイベント(UIWebViewDelegate)を使用して、URLの更新をキャッチします。 request.mainDocumentURL.absoluteStringはメインWebページのURL(通常は必要なURL)を取得し、request.URL.absoluteStringはCSSとJavaScriptを含みます。

2
Tom Söderlund

デリゲートメソッドを実装します。

- (BOOL)webView:(UIWebView *)webview shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSString  *URL = request.URL.absoluteString;    NSLog(@"%@",URL);
}

URLはまさに必要なものです。

2
Gobi M

UIWebViewは非推奨であるため、 WKWebview で現在のURLを取得するのは非常に簡単です。

webView.url
2
Kris Roofe

これは常に機能します。 。

NSString* url= [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
2
Shaik Riyaz

IN Swiftこれを試して、

func webViewDidFinishLoad(webView: UIWebView){
    println(WebView.request?.mainDocumentURL)
}
1
Zaid Pathan

WKWebViewおよびUIWebviewの現在のURLを取得するには

これがコードです。

if (self.wkWebView) {
   NSString  *URL = self.wkWebView.title;
}else if(self.uiWebView) {
   NSString *URL = self.uiWebView.request.title;
}
1
Stalin Pusparaj