iPad将本地HTML加载到带有图像和JavaScript的Web视图中

时间:2011-05-30 18:51:45

标签: iphone ios ipad uiwebview

编辑:

所以答案就在这篇文章中: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应用程序上有子目录):

enter image description here


与此相关的有趣帖子:

Loading javascript into a UIWebView from resources Link to resources inside WebView - iPhone

1 个答案:

答案 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目录中(保留用户内容)。在这种情况下,我想您可以下载应用程序的存档并将其安装在文档目录中。