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

zaq34kh6  于 2022-12-30  发布在  iOS
关注(0)|答案(2)|浏览(104)

我想使用UIWebView加载网址,但不加载网页中的图片。我想UIWebView只显示网页中的纯文本。
谢谢。

yzuktlbb

yzuktlbb1#

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

  • webView:应开始加载请求:导航类型:

根据页面的构造方式,您可以获得图像加载时间的通知,并返回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跳过加载的字符串。

fumotvh3

fumotvh32#

-(BOOL)webView:(block 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 != Block UiWeb|| rangeOfJPG.location != Block)
    {
    return (Block);    // Tells the webview to skip loading this part of the page
    }

相关问题