将本地图像直接加载到没有HTML的UIWebView?

问题描述:

我想加载一个本地图像文件到UIWebView。是否需要创建一个HTML文件并将图像加载到该文件中,或者是否可以直接将图像加载到网页视图中?将本地图像直接加载到没有HTML的UIWebView?

这是我目前用来将图像加载到网络视图中的代码,但它显示为空白。

NSURL *url = [NSURL fileURLWithPath:localFilePath isDirectory:NO]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
[self.webView loadRequest:request]; 

UIWebViewloadData:MIMEType:textEncodingName:baseURL:方法。而不是在它的图像编写HTML,你可以做一些简单的像这样

NSData *imageData = [NSData dataWithContentsOfURL:fileURL]; 
[self.webView loadData:imageData MIMEType:@"image/..." textEncodingName:@"utf-8" baseURL:nil]; 

输入图像是MIMEType说法应改为无论MIME。 (例如,jpeg是image/jpeg

+0

谢谢你的回答。当我下载UIWebView可以处理的其他文件类型时,它也适用于我。 – 2015-04-01 23:37:41

你为什么要把图像加载到UIWebView?这对我来说似乎是一种浪费。话虽如此,我诚实地说,做你想做的事情的最简单方法是添加一个UIImageView作为该Web视图的子视图。

你也可以做到这一点,我认为,如果你想注入的HTML字符串参考存储在您的捆绑图片:

// Given a UIWebView property called webView, and 
// an image named "foo.png" in your main bundle. 
NSString *bundlePath = [[NSBundle mainBundle] bundlePath]; 
NSURL *bundlePathURL = [NSURL fileURLWithPath:bundlePath]; 
[webView loadHTMLString:@"<img src=\"foo.png\" />" baseURL:bundlePathURL]; // Where foo.png is at that path, hopefully. 
+0

那里的代码仍然未经测试,但我认为应该这样做。重要的是baseload部分的-loadHTMLString:baseURL:方法调用。这告诉web视图,HTML体中的任何相对引用都应该看这个目录。 – josefdlange 2015-04-01 00:52:13

+0

图片只是其中一种可能的选项,我也会看到PDF文件,我相信可以通过网页浏览完成。 – 2015-04-01 23:09:08