将本地HTML加载到iOS上的UIWebView中,不显示本地图像或样式

时间:2012-10-03 10:20:56

标签: objective-c ios uiwebview

我遇到一个问题,即在使用iOS 5的iPad应用程序上使用UIWebView在本地HTML页面上显示本地图像和css样式表。

HTML页面本身显示并且布局良好,这很棒。但问题是它有空白的方块,图像应该通过,文本或任何地方的样式也没有显示。

我在SO上遇到了非常类似的问题,人们已经说过用基本URL将HTML加载到视图中,然后我使用他们问题的答案。但图像和风格仍未实现。

NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"htm" inDirectory:@"html_files"];
NSString* htmlString = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil];
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[web loadHTMLString:htmlString baseURL:baseURL];

UIWebView使用Interface Builder实现,我在.h文件中将其作为@property(nonatomic, retain) IBOutlet UIWebView *web;

在我的html_files文件夹中:

  • 的index.htm
  • img(文件夹)
  • style(文件夹)

使用以下代码,日志显示"index.htm", img, style告诉我它保持目录相同,但我仍然尝试放置然后链接到html_files根目录中的图像,但仍然没有。

NSString *htmlPath = [path stringByAppendingPathComponent:@"html_files"];
NSArray *dirContents = [[NSFileManager defaultManager] directoryContentsAtPath:htmlPath];
NSLog(@"%@", dirContents);

然后在index.htm中我链接到像<img src="img/logo.jpg">

这样的图像

非常感谢任何想法,谢谢。

编辑:在这里添加了项目链接:http://www.filedropper.com/localhtml(它实际上只是一个带有HTML文件的UIWebView,所以没什么大不整杂的)

1 个答案:

答案 0 :(得分:3)

好的,这是你犯的错误,我说只使用img标签中的图片名称,你在哪里使用路径。

在iOS中,无论您拥有多少个文件夹,只要有资源,它就会将所有资源添加到一个包中。

Sample screen shot after changes

这是link,请查看我仅在index.htm中进行了更改