【问题标题】:iPad loading local HTML into web view with images and javascriptiPad 将本地 HTML 加载到带有图像和 javascript 的 Web 视图中
【发布时间】:2011-09-05 00:08:36
【问题描述】:

编辑:

所以答案在这篇文章中:Loading javascript into a UIWebView from resources

您将找到加载带有目录的 HTML5 应用程序所需知道的一切,只需确保将文件拖放到 Xcode 项目中,单击“为任何添加的文件夹创建文件夹引用”的单选按钮。然后只需使用我在那里添加的链接上的代码。

感谢塞尔吉奥的帮助。


我已经多次使用 StackOverflow,但我在那里找到的代码都不能显示我的 html5 应用程序的图像。困难的部分似乎是从不同的子目录加载文件。我不想将所有内容都放在根目录中,然后在 Xcode 中使用组,因为我将不得不重构大量 HTML5 代码。

我想将它构建为一个轻量级容器,而不必使用 PhoneGap。此外,PhoneGap 还带有大量错误(我测试了我们的应用程序,它在 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

【问题讨论】:

  • 你说你的图片不显示;是否呈现了 HTML 的其余部分(即文本)?
  • 是的,文本加载。对于那个很抱歉。不过,我还没有测试链接是否有效。我做了太多测试,忘记在最新的测试上进行测试。
  • 您是否将所有图像都包含在您项目的资源组中?或者他们在哪里托管?
  • 是的,我是。我不得不删除重复的那些,因为它们给了我错误消息。尽管如此,这些重复只是小事。我只看到图像,我认为这是因为其余代码大量使用 js,而且也没有加载。

标签: iphone ios ipad uiwebview


【解决方案1】:

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

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

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

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

【讨论】:

  • 我在 HTML5 应用程序的路径上使用子目录。这会是一个问题吗?也许这就是问题所在。我有大量图片,有些有重复的名称(我正在使用其他人的代码),这将是一个问题,我知道。我想知道phonegap是如何做到的。他们只是在目录中搜索文件或类似的东西吗?在 Phonegap 上,您甚至不需要将文件作为资源。您只需要 index.html。
  • 我查看了我的答案以包含更多可以帮助您的信息。另外,提示您如何在 Resources 文件夹中创建目录。
  • 我会试一试,非常感谢 Sergio。我会发布我的结果。
  • 我对组织没有真正的问题,问题是我必须重构很多 HTML5 应用程序才能将图像移出图像文件夹。但我会做更多的测试,然后才能让每个人都因问题而发疯。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
  • 1970-01-01
  • 2013-01-23
  • 1970-01-01
相关资源
最近更新 更多