我尝试通过以下方式访问 webViewDidStartLoad 中 UIWebView 的请求对象:
- (void) webViewDidStartLoad:(UIWebView *)webView {
NSLog(@"req : %@", [webView request]);
-----
-----
}
它在控制台中显示以下内容: 请求:(空)
以上可能吗,还是我做错了什么? 投反对票
我不想在 webView:shouldStartLoadWithRequest:)request navigationType:
中使用它,因为 goBack
和 goForward
并不总是调用此方法> 方法
最佳答案
看起来您仍然需要考虑shouldStartLoadWithRequest
。
进行了一些测试,看起来 [webView request]
在委托(delegate)方法中“落后了一步”。
这是代码:
- (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]);
}
这是初始(关于:空白)和点击后(一些视频流,而不是实际打印输出)请求的结果:
初始请求:
req1a:关于:空白
req1b:(空)
请求2:
点击链接后:
请求1a:xttp://origin.biokoda.tv/...
req1b:关于:空白
请求2:关于:空白
看起来[webview request]
正在保存最后加载的请求。
关于objective-c - 无法访问 webViewDidStartLoad 内 UIWebView 的请求对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9444066/