编辑:
所以答案就在这篇文章中:Loading javascript into a UIWebView from resources
您可以找到加载带有目录的HTML5应用程序时需要了解的所有内容,只需确保在Xcode项目中删除文件,然后单击“为任何添加的文件夹创建文件夹引用”单选按钮。然后只使用我在那里添加的链接上的代码。
感谢Sergio的帮助。
我已经多次通过StackOverflow了,我找到的代码都没有显示我的html5应用程序的图像。困难的部分似乎是从不同的子目录加载文件。我不想把所有内容都放在root中,然后在Xcode中使用这些组,因为我必须重新考虑很多HTML5代码。
我想将其构建为轻型容器,而不必使用PhoneGap。除了PhoneGap带来了更大的bug(我测试了我们的应用程序,它在iPad上崩溃并在iPhone上工作)。处理HTML5方面和Cocoa Touch是很困难的。
所以这是我加载HTML页面的方式:
[webView loadRequest:[NSURLRequest requestWithURL:
[NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:@"index" ofType:@"html"]isDirectory:NO]]];
我找到了一些解决方案,当我将文件添加到资源文件夹时,它让我更接近“为任何添加的文件夹创建文件夹引用”,我现在可以看到正在加载的一些图像。 JS似乎没有正常工作。我已经测试了这个应用程序从本地服务器上运行的URL加载它,它确实在这种情况下工作。
所以CSS显然也在工作,图像也是如此,但JS似乎是一个问题。
希望我能尽快找到答案。
旧
(这是我错误地包含文件夹的时候)
因此,你们不必想知道我看到了什么(它看起来像js和图像没有加载,我确实在HTML5应用程序上有子目录):
与此相关的有趣帖子:
Loading javascript into a UIWebView from resources Link to resources inside WebView - iPhone
答案 0 :(得分:6)
实际上,您可以通过以下方式在UIWebView
中加载本地HTML:
– loadHTMLString:baseURL:
您唯一应该注意的是如何指定baseURL
以便它转到您的本地资源目录。因此,如果您添加HTML:
<img src="localImage.png" />
<link rel="stylesheet" type="text/css" href="theme.css" />
<script type="text/javascript" src="filename.js"></script>
这将在您的项目资源中找到。
绝对有效。您的HTML和javascript源可能存在一些“问题”(例如,使用子目录或绝对URL)。
编辑:
如果您需要在应用的Resources目录中的目录中组织资源(图像和脚本),请参阅此S.O. topic。
要获取Resources目录的路径,请使用:
NSString* filePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
另一种方法是将您的所有文件托管在应用的Documents
目录中(保留用户内容)。在这种情况下,我想您可以下载应用程序的存档并将其安装在文档目录中。