ฉันได้ลองรับ URL ปัจจุบันของฉันUIWebView
ด้วย: webview.request.URL
. น่าเสียดายที่NSURL
ว่างเปล่า มีอะไรผิดปกติที่นี่? ฉันกำลังทำงานกับ Xcode 3.2.2 beta 5
โค้ดข้างต้นควรจะดำเนินการในผู้ร่วมประชุมUIWebView
didStartLoad
ฉันได้ลองรับ URL ปัจจุบันของฉันUIWebView
ด้วย: webview.request.URL
. น่าเสียดายที่NSURL
ว่างเปล่า มีอะไรผิดปกติที่นี่? ฉันกำลังทำงานกับ Xcode 3.2.2 beta 5
โค้ดข้างต้นควรจะดำเนินการในผู้ร่วมประชุมUIWebView
didStartLoad
คำตอบ:
คุณสามารถลองสิ่งนี้:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];
window.location ผ่าน JS ใช้งานไม่ได้สำหรับฉัน แต่สิ่งนี้ทำได้:
currentURL = currentWebView.request.URL.absoluteString;
เครดิต: http://mohrt.blogspot.com/2008/10/getting-url-from-uiwebview.html
Mark Sands
นี่คือรหัสที่ฉันใช้เพื่อดึง url ทุกครั้งที่คุณไปที่ลิงค์อื่นภายใน webview:
- (void)webViewDidFinishLoad:(UIWebView *)aWebView
{
self.url = aWebView.request.mainDocumentURL;
}
webView.request.URL.absoluteString
กลับมาnil
ฉันก็พบว่าคำตอบที่ได้รับอนุมัติข้างต้นไม่น่าเชื่อถือ แต่ด้วยการปรับเปลี่ยนเล็กน้อยดูเหมือนว่าจะได้ผลทุกครั้ง:
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
สังเกตการเพิ่ม ".href" ลงใน Javascript เนื่องจากสิ่งนี้ซ่อนอยู่ที่ท้ายบรรทัดของโค้ด
สิ่งนี้ไม่ถูกต้องและจะคืนค่าศูนย์:
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]);
}
ลองสิ่งนี้สำหรับผลการค้นหาของ Google บน iPhone:
NSString* currentURL = webView.request.URL.absoluteString;
NSString* mainDocumentURL = webView.request.mainDocumentURL.absoluteString;
ทั้งคู่กลับมาเหมือนเดิม!
นี่คือรหัสที่ฉันใช้:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[[[webView request] URL] absoluteString]]];
webView.request.URL
หรือไม่
เนื่องจาก UIWebView เลิกใช้งานแล้วสำหรับWKWebviewในการรับ url ปัจจุบันนั้นง่ายมาก
webView.url
ฉันใช้shouldStartLoadWithRequest
เหตุการณ์ (UIWebViewDelegate) เพื่อตรวจจับการอัปเดต URL request.mainDocumentURL.absoluteString
จะทำให้คุณได้รับ URL ของหน้าเว็บหลัก (ซึ่งโดยปกติคือสิ่งที่คุณต้องการ) ในขณะที่request.URL.absoluteString
จะมี CSS และ 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 คือสิ่งที่คุณต้องการอย่างแท้จริง
ในSwiftลองสิ่งนี้
func webViewDidFinishLoad(webView: UIWebView){
println(WebView.request?.mainDocumentURL)
}
เพื่อรับ URL ปัจจุบันของ WKWebView และ UIWebview
นี่คือรหัส
if (self.wkWebView) {
NSString *URL = self.wkWebView.title;
}else if(self.uiWebView) {
NSString *URL = self.uiWebView.request.title;
}