如何在UIWebview中的目录(JS,图像,CSS)加载本地HTML资产? (IOS)

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

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

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认为一切都在我的包的根目录中。 但是,这意味着我不能跨项目使用相同的代码,而不是将其全部转储到一个目录(跛脚)。 我的工程师不能处理这种混乱。

提前致谢。

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

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

你应该可以做到这一点。 重要的是要注意的是如何将文件添加到您的项目。 当通过Xcode添加文件时,请确保选中“为任何文件夹创build文件夹引用”,而不是“为任何添加的文件夹创build组”。

参考