(BOOL) webView... 不触发所有请求
Posted
技术标签:
【中文标题】(BOOL) webView... 不触发所有请求【英文标题】:(BOOL) webView... not firing on all requests 【发布时间】:2014-05-27 14:59:49 【问题描述】:我正在使用 UIWebViews 开发 ios 应用程序,并且遇到了一些有趣的行为。
我正在尝试通过 UIWebView 将网站中的内容加载到 iOS 应用程序中,但我想阻止网站发出的某些调用(例如我的一些分析)以加快 WebView 中的加载速度。如果我将设备连接到代理(我一直在使用 Charles Proxy),我可以看到这些请求发出,就像我期望的那样。然而,无论出于何种原因,
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
未捕获我正在寻找的请求。事实上,webView:(UIWebView *)... 只触发了我看到的通过代理发出的大约三分之一的调用。
有人知道为什么会这样吗?或者知道我可以做些什么来拦截 UIWebView 发出的所有调用?
谢谢
【问题讨论】:
你设置了代理吗? 是的。它可能会触发 12 次/页面加载,我看到近 40 个请求通过代理发出。 【参考方案1】:您不会收到来自 Web 视图的所有请求的委托调用(例如,资源请求,如 javascript 和图像)。
要对所有请求进行精确控制,您需要实现NSURLProtocol
,您可以在其中决定允许哪些请求以及阻止哪些请求。
【讨论】:
以上是关于(BOOL) webView... 不触发所有请求的主要内容,如果未能解决你的问题,请参考以下文章
当 UIWebView 打开 PDF 时 webViewDidFinishLoad 未触发
在(BOOL)webView 中:如何打开在 UIWebView 中单击的 URL 以打开模态 UIWebView