【问题标题】:Images in my html file in UIWebView not showingUIWebView 中我的 html 文件中的图像未显示
【发布时间】:2014-05-24 21:16:08
【问题描述】:

这是我的场景:

我的包中有一个名为“HTML”的文件夹。该文件夹有一个 HTML 文件和 5 张图像。 HTML 文件在某个时候使用简单的img 标记引用所有图像。

     <img src="tut_navigation.png" />

现在我有一个UIWebview,我用它来加载 HTML 文件。除了我的图像之外,HTML 文件的所有内容都正确呈现。由于某种奇怪的原因,我的图像没有显示出来。然后我做了一些研究,发现相关帖子说要像这样加载 URL:

NSString *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"tutorial" ofType:@"html" inDirectory:@"HTML"]];
NSString* htmlString = [NSString stringWithContentsOfFile:url encoding:NSUTF8StringEncoding error:nil];
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[self.webView loadHTMLString:htmlString baseURL:baseURL];

一旦我进行了这个更改并再次运行它,这次只有第一张图片正在加载,其他图片没有。我不知道问题是什么。当我在网络浏览器中查看这个 HTML 文件时,一切正常。
有什么想法吗?

【问题讨论】:

  • 你能发布 HTML 文件,或者至少发布所有的 img 标签吗?
  • 你可以在这篇文章中获得很多关于这个的信息:[iPhone Dev: UIWebView baseUrl to resources in Documents folder not App bundle][1] [1]: stackoverflow.com/questions/1926117/…
  • 这是我如何使用 img 标签的一个例子
  • @mad_mask 我查看了该链接并按照那里建议的方式进行操作,但我仍然得到相同的结果。这把我逼疯了,只有一张图片正在加载,其余的都没有,太奇怪了。

标签: objective-c image ios7 uiwebview


【解决方案1】:

baseURL 必须是应用程序包内 HTML 文件夹的路径,而不是(如您所拥有的)应用程序包本身的路径。

改变这个:

NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[self.webView loadHTMLString:htmlString baseURL:baseURL];

到这里:

[self.webView loadHTMLString:htmlString baseURL:url];

您为基本 URL (url) 提供了正确的 URL,然后您将其丢弃并替换了捆绑包本身的 URL,这是错误的。

更好的是,忘记基本 URL,只使用 URL 而不是文件本身的路径字符串:

NSString *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"tutorial" ofType:@"html" inDirectory:@"HTML"]];
NSURLRequest* req = [[NSURLRequest alloc] initWithURL:url];
[self.webview loadRequest: req];

【讨论】:

  • 我相信是的,我重新编辑了我的原始帖子以显示完整的代码。
  • 不,不是。查看您的代码以及如何计算baseURL。您比 HTML 文件夹更上一层 - 在主包本身。这就是问题所在。
  • 基本上,我认为您刚刚选择的变量名称太差,以至于您自己搞糊涂了。我已经编辑了我的答案,以便多握你的手...... :)
  • 哇,谢谢@matt。你的建议奏效了。我使用了你的第二个建议。
  • 是的,第二种方式更干净。唯一的缺点是这个 URL 进入了 web 视图的历史;在某些情况下,您可能不希望这样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-07
  • 1970-01-01
  • 1970-01-01
  • 2017-03-29
  • 2014-02-21
  • 1970-01-01
相关资源
最近更新 更多