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

Osc*_*and 5 uiwebview ios swift

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

我的文件夹结构是:

assets
>html
>>*.html
>>*.html
>>*.html
>media
>>*.jpeg
>>*.jpeg
>>*.jpeg
Run Code Online (Sandbox Code Playgroud)

我用HTML请求图像

<img src="../media/sjolyst.jpg" alt="Sjølyst"/>
Run Code Online (Sandbox Code Playgroud)

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

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)
Run Code Online (Sandbox Code Playgroud)

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

iph*_*nic 14

问题是,

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

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

<img src="../media/sjolyst.jpg" alt="Sjølyst"/>
Run Code Online (Sandbox Code Playgroud)

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

解决方案简单

  1. 删除你所有的html东西,我猜文件夹.
  2. 重新添加HTML文件夹,请参阅图像 在此输入图像描述
  3. 你应该看到如下图所示的文件夹

    在此输入图像描述

你现在很高兴.

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

希望这可以帮助.

干杯.