在UIWebView中的本地HTML文件中加载本地映像

时间:2015-03-18 09:28:41

标签: ios swift uiwebview

我在这里尝试过很多其他答案,但我似乎无法想出这个问题。我有一个嵌入一些本地图像的本地HTML文件。

我的文件夹结构是:

assets
>html
>>*.html
>>*.html
>>*.html
>media
>>*.jpeg
>>*.jpeg
>>*.jpeg

我用

请求HTML中的图片
<img src="../media/sjolyst.jpg" alt="Sjølyst"/>

我加载网页视图的代码非常简单,

var path = NSBundle.mainBundle().pathForResource(htmlFileName, ofType: "html")!
let data: NSData = NSData(contentsOfFile:path)!
var html = NSString(data: data, encoding:NSUTF8StringEncoding)

detailWebView.loadHTMLString(html as! String, baseURL: NSBundle.mainBundle().bundleURL)

这似乎与我在SO上看到的所有答案相同。不过,它呈现如下: :( 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:14)

问题是,

您的应用无法确定您的资源位置以及您的HTML位置。

为什么?因为您的html和资源是以分布式方式添加的。您需要将所有内容放在单个文件夹中,以便可以访问您的资源。根据你的代码

<img src="../media/sjolyst.jpg" alt="Sjølyst"/>

您正在尝试相对获取图片,但在实际文件夹结构中没有../media

解决方案简单。

  1. 删除所有的html内容,我猜文件夹。
  2. 重新添加HTML文件夹,请参阅图片 enter image description here
  3. 您应该会看到如下图所示的文件夹

    enter image description here

  4. 你现在好了。

    通过在2中添加中提到的文件夹。在捆绑路径中创建一个文件夹,并将所有具有正确文件夹结构的资源放入其中。

    希望这有帮助。

    干杯。