我试图以下列方式访问webViewDidStartLoad中UIWebView的请求对象:
- (void) webViewDidStartLoad:(UIWebView *)webView {
NSLog(@"req : %@", [webView request]);
-----
-----
}
它在控制台中显示以下内容: req:(null)
以上是否可行或我做错了什么? 投票
我不想在webView:shouldStartLoadWithRequest:)request navigationType:
内使用它,因为goBack
和goForward
方法始终不会调用此方法
答案 0 :(得分: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)
req2:
点击链接后:
req1a:xttp://origin.biokoda.tv / ...
req1b:about:blank
req2:about:blank
看起来[webview request]
持有上次加载的请求。