我有一个网站,我希望在UIWebView中加载,但它充满了图像,需要很长时间才能加载。这些图像毫无用处,只会降低iPhone的可用性。我没有网站,所以我无法更改网站的实际代码。
网页与ASP.NET和AJAX(需要外部文件)密切联系到网页,因此我不认为可以加载HTML字符串。
我想完全阻止图像加载。那我怎么阻止他们?以某种方式更改HTML代码作为其加载,或阻止图像被加载?
答案 0 :(得分:2)
我有三个想法。
答案 1 :(得分:1)
UIWebView委托方法不起作用,你是对的!新答案:
是的,您需要更深层次地抓住来自NSURLRequest
的{{1}}。您所指的博客使用UIWebView
,我认为这是一个很好的起点:
您是否尝试将NSURLCache子类化,然后覆盖NSURLCache
如果您想避免执行请求,则需要返回一些内容(作为-(NSURLCacheResponse*) cachedResponseForRequest:(NSURLRequest*) request
)。例如,您可以获取在应用中静态定义的图像(可能是大小为0,0的PNG)。
如果您返回NSURLCachedResponse
,则会执行请求。
我正在使用这种方法强制nil
填充本地缓存。请在此处查看我的详细解答:
How to save the content in UIWebView for faster loading on next launch?
错误的第一个回答:/
将自己添加为UIWebView
(UIWebView
)的委托。
对于UIWebViewDelegate
尝试加载的每个图像,delagate会调用以下回调:
UIWebView
只需检查请求是否与您要避免下载的图像相关。在这种情况下,只需将-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
返回此回调:图片将不会加载到NO
。
通过使用此方法,服务器端无需进行任何更改。
答案 2 :(得分:0)
我建议另外一个选择:
使用WebView委托的webView:shouldStartLoadWithRequest:navigationType:
在尝试加载图片时返回NO。
答案 3 :(得分:0)
您可以使用以下代码行,每当您想要停止webView加载时。
[webView stopLoading];