我正在使用具有后退和前进按钮的浏览器,在点击时,应立即显示正在加载的页面的URL。目前我执行类似[webView goBack];
的操作,然后实现委托UIWebView方法:
- (void)webViewDidStartLoad:(UIWebView *)aWebView {
NSLog(@"began loading URL: %@", aWebView.request.URL);
}
但这不会导致我期望的行为。
例如,如果我从www.google.com开始,然后导航到www.aol.com,然后按后退按钮,调用Web视图的goBack代码,NSLog将输出began loading URL: http://www.aol.com/
即使它应该声明google.com正在加载。然而,谷歌页面将在Web视图中完美加载。我不明白的是为什么URL与正在加载的内容不一致。有时日志会吐出正在加载aol.com,然后是google.com,但这有时只会发生。这是SDK的错误还是我错过了什么?
提前致谢。
答案 0 :(得分:3)
尝试使用此委托方法
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSLog(@"Request Url:%d",request.URL.absoluteURL);
}
答案 1 :(得分:0)
我建议每次加载一个新的url时都使用一个字符串数组,你将它添加到数组中,然后根据后退/前进单击定义一个全局计数器增加/ deacrease,这样你就可以像这样轻松获取url < / p>
NSString *urlString = [urlArray objectAtIndex:theCounterValue];
答案 2 :(得分:0)
尝试:
NSString *currentURL;
currentURL = [[NSString alloc] initWithFormat:@"%@", webView.request.mainDocumentURL];