webview.request.URL
でUIWebView
の現在のURLを取得しようとしました。残念ながらNSURL
は空でした。ここで何か問題がありますか? Xcode 3.2.2 beta 5を使用しています。
上記のコードは、UIWebView
デリゲートdidStartLoad
で実行する必要があります。
これを試すことができます:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
jSを介したwindow.locationは、私にとっては確実に機能しませんでしたが、これは機能しました:
currentURL = currentWebView.request.URL.absoluteString;
クレジット: http://mohrt.blogspot.com/2008/10/getting-url-from-uiwebview.html
以下は、webview内の別のリンクに移動するたびにURLを取得するために使用するコードです。
- (void)webViewDidFinishLoad:(UIWebView *)aWebView
{
self.url = aWebView.request.mainDocumentURL;
}
私も、上記の承認された答えが信頼できないことがわかりました。しかし、わずかな修正を加えることで、毎回機能するようです:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
Javascriptに「.href」が追加されていることに注意してください。これは、コード行の最後に隠されています。
これは正しくなく、nilを返します。
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
ただし、以下のコードはURLを取得できますが、URLは現在のURLではない場合があります。
NSString *url = _webView.request.URL.absoluteString;
正しいものは次のとおりです。
NSString *currentURL = [_webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
- (void)webViewDidFinishLoad:(UIWebView *)webView{
NSURL *currentURL = [[webView request] URL];
NSLog(@"%@",[currentURL description]);
}
IPhoneのGoogle検索結果でこれを試しました:
NSString* currentURL = webView.request.URL.absoluteString;
NSString* mainDocumentURL = webView.request.mainDocumentURL.absoluteString;
どちらも同じ文字列を返します!
ここで私が使用するコード:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[[[webView request] URL] absoluteString]]];
shouldStartLoadWithRequest
イベント(UIWebViewDelegate)を使用して、URLの更新をキャッチします。 request.mainDocumentURL.absoluteString
はメインWebページのURL(通常は必要なURL)を取得し、request.URL.absoluteString
はCSSとJavaScriptを含みます。
デリゲートメソッドを実装します。
- (BOOL)webView:(UIWebView *)webview shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *URL = request.URL.absoluteString; NSLog(@"%@",URL);
}
URLはまさに必要なものです。
UIWebViewは非推奨であるため、 WKWebview で現在のURLを取得するのは非常に簡単です。
webView.url
これは常に機能します。 。
NSString* url= [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
IN Swiftこれを試して、
func webViewDidFinishLoad(webView: UIWebView){
println(WebView.request?.mainDocumentURL)
}
WKWebViewおよびUIWebviewの現在のURLを取得するには
これがコードです。
if (self.wkWebView) {
NSString *URL = self.wkWebView.title;
}else if(self.uiWebView) {
NSString *URL = self.uiWebView.request.title;
}