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

编辑:

所以答案是在这篇文章中: 从资源加载到UIWebView的JavaScript

你会发现你需要知道加载一个带有目录的HTML5应用程序的所有东西,只要确保你在Xcode项目上放下文件,点击单选button,读取“为所有添加的文件夹创build文件夹引用”。 然后,只需使用我在那里添加的链接上的代码。

感谢塞尔吉奥的帮助。


我已经经过了几次StackOverflow,并没有我在那里find的代码可以显示我的HTML5应用程序的图像。 困难的部分似乎是从不同的子目录加载文件。 我不想把所有东西都放在根目录下,然后在Xcode中使用这个组,因为我不得不重新考虑大量的HTML5代码。

我想build立一个轻的容器,而不必使用PhoneGap。 除了PhoneGap,还有一个更大的BUG(我testing了我们的应用程序,它在iPad上崩溃,并在iPhone上工作)。 处理事情和Cocoa Touch的HTML5方面已经很难了。

所以下面是我如何加载HTML页面:

[webView loadRequest:[NSURLRequest requestWithURL: [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]isDirectory:NO]]]; 

我已经find了一些解决scheme,让我更接近“为所有添加的文件夹创build文件夹引用”时,将文件添加到资源文件夹,我现在可以看到一些正在加载的图像。 JS似乎没有正常工作。 我已经testing了这个应用程序加载它从本地服务器上运行的URL,它在这种情况下工作。

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

希望我很快会find答案。


(这是当我包括文件夹错误的方式)

所以,当你们不需要想知道我在看什么(看起来像我和js,图像不加载,我有HTML5应用程序的子目录):

在这里输入图像说明


与此有关的有趣post:

将JavaScript从资源加载到UIWebView 链接到WebView – iPhone中的资源

的确,您可以通过以下方式在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> 

这将在您的项目资源中find。

它绝对有效。 可能有一些“问题”与您的HTML和JavaScript源(例如,使用子目录或绝对URL)。

编辑:

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

要获取资源目录的path,请使用:

  NSString* filePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]; 

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