在 UIWebView 中的本地 HTML 文件中加载本地图像
Load local images in a local HTML file within a UIWebView
我在这里尝试了很多其他答案,但我似乎无法弄清楚这个。我有一个本地 HTML 文件,其中嵌入了一些本地图像。
我的文件夹结构是:
assets
>html
>>*.html
>>*.html
>>*.html
>media
>>*.jpeg
>>*.jpeg
>>*.jpeg
我用
从 HTML 请求图像
<img src="../media/sjolyst.jpg" alt="Sjølyst"/>
我加载 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)
这似乎和我在SO上看到的所有答案都一样。仍然,它呈现如下:
我该如何解决这个问题?
问题是,
您的应用无法确定您的资源在哪里,以及您的 html 在哪里。
为什么?因为你的html和资源都是bundle加的,比较分散。您需要将所有内容放在一个文件夹中,以便可以访问您的资源。根据你的代码
<img src="../media/sjolyst.jpg" alt="Sjølyst"/>
您尝试相对获取图像,但在实际文件夹结构中没有../media
。
解决方案简单。
- 删除你所有的 html 东西,我猜是文件夹。
- Re-add HTML 文件夹,见图
您应该会看到如下图所示的文件夹
你现在可以开始了。
通过在2.中添加提到的文件夹在包路径中创建一个文件夹,并将所有具有正确文件夹结构的资源放入其中。
希望对您有所帮助。
干杯。
我在这里尝试了很多其他答案,但我似乎无法弄清楚这个。我有一个本地 HTML 文件,其中嵌入了一些本地图像。
我的文件夹结构是:
assets
>html
>>*.html
>>*.html
>>*.html
>media
>>*.jpeg
>>*.jpeg
>>*.jpeg
我用
从 HTML 请求图像<img src="../media/sjolyst.jpg" alt="Sjølyst"/>
我加载 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)
这似乎和我在SO上看到的所有答案都一样。仍然,它呈现如下:
问题是,
您的应用无法确定您的资源在哪里,以及您的 html 在哪里。
为什么?因为你的html和资源都是bundle加的,比较分散。您需要将所有内容放在一个文件夹中,以便可以访问您的资源。根据你的代码
<img src="../media/sjolyst.jpg" alt="Sjølyst"/>
您尝试相对获取图像,但在实际文件夹结构中没有../media
。
解决方案简单。
- 删除你所有的 html 东西,我猜是文件夹。
- Re-add HTML 文件夹,见图
您应该会看到如下图所示的文件夹
你现在可以开始了。
通过在2.中添加提到的文件夹在包路径中创建一个文件夹,并将所有具有正确文件夹结构的资源放入其中。
希望对您有所帮助。
干杯。