我想使用UIWebView加载网址,但不加载网页中的图片。我想UIWebView只显示网页中的纯文本。谢谢。
yzuktlbb1#
最好的办法是为webView设置一个委托并实现delegate方法:
根据页面的构造方式,您可以获得图像加载时间的通知,并返回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跳过加载的字符串。
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 }
2条答案
按热度按时间yzuktlbb1#
最好的办法是为webView设置一个委托并实现delegate方法:
根据页面的构造方式,您可以获得图像加载时间的通知,并返回NO以阻止webView加载该资源。
编辑:
如果您没有在xib中设置Web视图的委托,那么在安装过程中的某个时候:
然后,在设置为委托的类中,类似于:
因此,任何扩展名为. png或. jpg的文件都会被跳过。
这在很大程度上取决于您正在加载的页面的结构。对于更复杂的页面,可能没有针对特定图像的回调。
如果你知道你试图加载的页面的结构,这会有很大的帮助。
你也可以使用Safari浏览器来检查页面的代码,以确定里面有什么。另外,在shouldStartLoadWithRequest委托方法的开头设置一个断点,可以让你准确地看到哪些请求通过,你也可以使用它来硬编码你希望webview跳过加载的字符串。
fumotvh32#