无法访问 webViewDidStartLoad 内的 UIWebView 的请求对象
Posted
技术标签:
【中文标题】无法访问 webViewDidStartLoad 内的 UIWebView 的请求对象【英文标题】:Not able to access request object of UIWebView inside webViewDidStartLoad 【发布时间】:2012-02-25 12:40:01 【问题描述】:我正在尝试通过以下方式访问 webViewDidStartLoad 中 UIWebView 的请求对象:
- (void) webViewDidStartLoad:(UIWebView *)webView
NSLog(@"req : %@", [webView request]);
-----
-----
它在控制台中显示以下内容: 请求:(空)
以上可能还是我做错了什么? 否决票
我不想在webView:shouldStartLoadWithRequest:)request navigationType:
中使用它,因为goBack
和goForward
方法不会始终调用此方法
【问题讨论】:
如何设置 webView 和请求? 我已经从 IB 添加了 WebView 并将其委托设置为我实现 UIWebView 委托方法的控制器类之一 【参考方案1】:看来你还是得考虑shouldStartLoadWithRequest
。
做了一些测试,看起来[webView request]
在委托方法中“落后了一步”。
这是代码:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
NSLog(@"req1a : %@", [request URL]);
NSLog(@"req1b : %@", [[webView request] URL]);
return YES;
- (void) webViewDidStartLoad:(UIWebView *)webView
NSLog(@"req2 : %@", [[webView request] URL]);
这是初始(about:blank)和点击后(一些视频流,不是实际打印输出)请求的结果:
初始请求:
req1a : about:blank
req1b : (null)
请求2:
点击链接后:
req1a : xttp://origin.biokoda.tv/...
req1b : about:blank
req2 : about:blank
看起来[webview request]
正在保留上次加载的请求。
【讨论】:
是的,你是对的。我也研究过,发现要么我们必须使用 shouldStartLoadWithRequest 方法,要么使用 webViewDidFinishLoad 方法。不知道webViewDidStartLoad中不允许访问的原因。谢谢。标记你是正确的。以上是关于无法访问 webViewDidStartLoad 内的 UIWebView 的请求对象的主要内容,如果未能解决你的问题,请参考以下文章