我遇到一个问题,即在使用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
告诉我它保持目录相同,但我仍然尝试放置然后链接到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,所以没什么大不整杂的)
答案 0 :(得分:3)
好的,这是你犯的错误,我说只使用img标签中的图片名称,你在哪里使用路径。
在iOS中,无论您拥有多少个文件夹,只要有资源,它就会将所有资源添加到一个包中。
这是link,请查看我仅在index.htm中进行了更改