如何阻止在UIWebView iOS中加载图像?

时间:2015-09-11 05:21:34

标签: ios iphone webview uiwebview

我想使用UIWebView加载网址,但不要在网页中加载图片。我希望UIWebView只显示网页中的纯文字。

感谢。

1 个答案:

答案 0 :(得分:0)

最好的办法是为webView设置一个委托并实现委托方法:

  • web视图:shouldStartLoadWithRequest:navigationType:

根据页面的构造方式,您可以获得有关图像何时加载的通知,并返回NO以停止webView加载该资源。

编辑:

如果您没有在xib中设置Web视图的委托,那么在设置中的某个时刻:

self.webview.delegate = self;

然后,在您设置为委托的类中,类似于:

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

NSRange rangeOfPNG = [request.URL.absoluteString rangeOfString:@".png"];
NSRange rangeOfJPG = [request.URL.absoluteString rangeOfString:@".jpg"];

if (rangeOfPNG.location != NSNotFound || rangeOfJPG.location != NSNotFound)
    {
    return (NO);    // Tells the webview to skip loading this part of the page
    }

return (YES);       // Allows the webview to load everything else
}

所以任何扩展名为.png或.jpg的内容都会被跳过。

这在很大程度上取决于您正在加载的页面的结构。对于更复杂的页面,可能没有针对特定图像的回调。

如果您知道要尝试加载的页面结构,那么它会有很大帮助。

您还可以使用Safari检查页面的代码,以确定其中的内容。此外,在shouldStartLoadWithRequest委托方法的开头设置断点将让您准确查看请求的来源,并且您可以使用它来硬编码您希望webview跳过加载的字符串。