如何在UIWebview中的目录(js,images,css)中加载本地html资源? (IOS)

时间:2012-10-15 22:16:14

标签: html ios uiwebview bundle local

具体来说 - 如何在不改变原始HTML(删除目录)内容的情况下从各自的目录(images /,css /,js /)加载所有资源?

我正在使用此代码将index.html加载到UIWebview中:

NSURL *url = [[NSBundle mainBundle] URLForResource:@"index" withExtension:@"html"];
NSString *html = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];

[webView loadHTMLString:html baseURL:baseURL];

然后我的html看起来像这样:

...
<link rel="stylesheet" type="text/css" href="css/main.css" />
<script type="text/javascript" src="js/classes.js"></script>
<script type="text/javascript" src="js/animate.js"></script>
etc...

如果我删除了js /,css /和images /,一切正常,因为iOS认为一切都在我的包的根目录中。但是,这意味着我无法跨项目使用相同的代码而不将其全部转储到一个目录中(跛脚)。我的工程师无法处理这种混乱。

提前致谢。

2 个答案:

答案 0 :(得分:3)

简单:当您将文件夹添加到Xcode时,请确保将它们添加为文件夹参考。

然后将它们作为文件夹添加到.app包中:

答案 1 :(得分:1)

你应该能够做到这一点。需要注意的重要事项是如何将文件添加到项目中。通过Xcode添加文件时,请务必选中“为任何已添加的文件夹创建文件夹引用”,而不是“为任何添加的文件夹创建组”。

reference