programing

UI WebView의 현재 URL 가져오기

linuxpc 2023. 6. 5. 23:42
반응형

UI WebView의 현재 URL 가져오기

나는 이미 나의 현재 URL을 얻으려고 시도했습니다.UIWebView포함:webview.request.URL불행하게도 그NSURL비어 있었습니다.여기 무슨 문제라도 있나요?저는 Xcode 3.2.2 베타 5로 일하고 있습니다.

위의 코드는 다음에서 실행되어야 합니다.UIWebView위임한didStartLoad.

JS를 통한 window.location은 저에게 안정적으로 작동하지 않았지만, 이것은 다음과 같습니다.

currentURL = currentWebView.request.URL.absoluteString;

신용: http://mohrt.blogspot.com/2008/10/getting-url-from-uiwebview.html

다음은 웹 뷰 내에서 다른 링크로 이동할 때마다 URL을 가져오는 코드입니다.

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

Matt의 버전은 훨씬 깨끗합니다.저는 모두에게 이것 대신 저것을 사용하는 것을 추천합니다.

사용해 볼 수 있습니다.

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

저도 위의 승인된 답변이 신뢰할 수 없다는 것을 알게 되었습니다.그러나 약간의 수정을 가하면 매번 작동하는 것처럼 보입니다.

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

자바스크립트에 ".href"를 추가하는 것을 주목하세요. 왜냐하면 이것은 코드 줄의 끝에 숨겨져 있기 때문입니다.

이것은 올바르지 않으며 0을 반환합니다.

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;

둘 다 같은 문자열을 반환합니다!

UI WebView는 더 이상 사용되지 않으므로 WK WebView에서 현재 URL을 가져오는 것은 매우 간단합니다.

webView.url

여기 내가 사용하는 코드:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[[[webView request] URL] absoluteString]]];

나는 사용합니다.shouldStartLoadWithRequest이벤트(UIWebViewDelegate)를 클릭하여 URL 업데이트를 캡처합니다. request.mainDocumentURL.absoluteString기본 웹 페이지의 URL(일반적으로 사용자가 원하는 URL)을 제공되는 동안request.URL.absoluteStringCSS와 JavaScript를 포함합니다.

이것은 항상 작동합니다.

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

대리인 방법 구현,

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

URL은 당신이 정확히 필요로 하는 것입니다.

스위프트에서 이걸 시도해 보세요.

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;
}

언급URL : https://stackoverflow.com/questions/2491410/get-current-url-of-uiwebview

반응형