2

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

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

我在 SO 上遇到了非常相似的问题,人们说使用 baseURL 将 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文件夹中,我有:

  • 索引.htm
  • 图像(文件夹)
  • 样式(文件夹)

使用以下代码,日志显示"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,所以没什么大不了的)

4

1 回答 1

3

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

在 iOS 中,不管你有多少文件夹,无论你在哪里拥有资源,它只是将所有资源添加到一个包中。

更改后的示例屏幕截图

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

于 2012-10-03T11:26:22.413 回答