如何在iOS的UIWebview中加载位于目录中的本地HTML资源(js、图像、css)?

3
具体来说,如何在不改变原始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认为所有东西都在我的bundle根目录中。但是这意味着我不能在项目之间使用相同的代码,除非把它们全部倾倒到一个目录中(很烦人)。作为一名工程师,我无法接受这种混乱状态。
提前感谢您的帮助。
2个回答

3
当您将文件夹添加到Xcode时,请确保将它们作为文件夹引用添加。这样,它们就会作为文件夹添加到.app包中:

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

reference


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接