(BOOL)webView ...不会对所有请求触发

时间:2014-05-27 14:59:50

标签: ios objective-c uiwebview

我正在使用UIWebViews在iOS应用上工作,而且我正在尝试一些有趣的行为。

我试图通过UIWebView将我网站上的内容加载到iOS应用中,但我想阻止网站发出的某些调用(例如我的某些分析)来加速WebView中的加载。如果我将设备连接到代理(我一直在使用Charles Proxy),我可以看到这些请求消失,就像我期望的那样。但是,无论出于何种原因,

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

没有捕捉到我正在寻找的请求。实际上,webView:(UIWebView *)...只会触发我看到通过代理发出的大约三分之一的调用。

有谁知道为什么会这样?或者知道我可以做些什么来拦截UIWebView所做的所有调用?

谢谢

1 个答案:

答案 0 :(得分:1)

您不会从Web视图中获取所有请求的委托调用(例如,资源请求,例如JavaScript和图像)。

要准确控制所有请求,您需要实现一个NSURLProtocol,您可以在其中决定允许哪些请求以及阻止哪些请求。