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

Hot*_*day 5 iphone uiwebview ipad ios

编辑:

所以答案就在这篇文章中:从资源中将javascript加载到UIWebView中

您将找到加载带有目录的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]]]; 
Run Code Online (Sandbox Code Playgroud)

我找到了一些解决方案,当我将文件添加到资源文件夹时,它让我更接近"为任何添加的文件夹创建文件夹引用",我现在可以看到正在加载的一些图像.JS似乎没有正常工作.我已经测试了这个应用程序从本地服务器上运行的URL加载它,它确实在这种情况下工作.

所以CSS显然在工作,图像也是如此,但JS似乎是一个问题.

希望我能很快找到答案.


(这是我以错误的方式包含文件夹的时候)

因此,你们不必想知道我在看什么(它看起来像js和图像没有加载,我在HTML5应用程序上有子目录):

在此输入图像描述


有趣的帖子与此相关:

从资源中将javascript加载到UIWebView中 链接到WebView - iPhone中的资源

ser*_*gio 6

实际上,您可以UIWebView通过以下方式加载本地HTML :

– loadHTMLString:baseURL:
Run Code Online (Sandbox Code Playgroud)

您应该注意的唯一事情是如何指定它baseURL以便它到您的本地资源目录.所以,如果你添加你的HTML:

<img src="localImage.png" />
<link rel="stylesheet" type="text/css" href="theme.css" />
<script type="text/javascript" src="filename.js"></script>
Run Code Online (Sandbox Code Playgroud)

这将在您的项目资源中找到.

绝对有效.可能存在HTML和javascript源的一些"问题"(例如,使用子目录或绝对URL).

编辑:

如果您需要在应用程序的Resources目录中的目录中组织资源(图像和脚本),请参阅此SO主题.

要获取Resources目录的路径,请使用:

 NSString* filePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];  
Run Code Online (Sandbox Code Playgroud)

另一种方法是将所有文件托管在Documents应用程序的目录中(保留用户内容).在这种情况下,我想您可以下载应用程序的存档并将其安装在文档目录中.