从 SWIFT 中的网络视图显示存储在应用程序中的图像的最佳方式
best way to show images stored in the app from a webview in SWIFT
我有一个网络视图,想在网络视图中显示一张图片 (html)
我的HTML:
你好!img src="myimage.png" alt="myimage" height="42" width="42"!
(我使用 ! 作为标记结束和标记开始,因为我不知道如何在此处添加它而不被解释为 HTML,即使我粘贴为代码)
- myimage.png 应存储在应用程序本身中,而不是从网络资源加载。
我不知道如何以最佳实践方式做到这一点。有帮助吗?
更新
我尝试了参考文章,但仍然没有成功:
我的代码:
let path:NSString = NSBundle.mainBundle().bundlePath;
var baseURL:NSURL=NSURL(fileURLWithPath: path as String)!;
var htmlString:String! = texttemp
myWebView.loadHTMLString(htmlString, baseURL: baseURL)
我已经可以加载相同的图像,如下所示 -> 有效:
var image = UIImage(named: "myimage.png");
您更新后的代码不正确。您正在创建包的路径,而不是特定文件的路径。您需要使用 NSBundle 方法 pathForResource:ofType
(或其变体之一)来构建文件路径。然后用它来创建 URL.
pathForResource:ofType
系列方法 return 如果找不到文件则为零,因此您应该检查是否正在返回路径。
编辑:
仔细观察,我发现您正在使用 URL 作为调用 loadHTMLString 的基础 URL。这看起来确实是一种合理的方法。您的 HTML 字符串是什么,捆绑包中的图片在哪里?
我有一个网络视图,想在网络视图中显示一张图片 (html)
我的HTML:
你好!img src="myimage.png" alt="myimage" height="42" width="42"!
(我使用 ! 作为标记结束和标记开始,因为我不知道如何在此处添加它而不被解释为 HTML,即使我粘贴为代码)
- myimage.png 应存储在应用程序本身中,而不是从网络资源加载。
我不知道如何以最佳实践方式做到这一点。有帮助吗?
更新 我尝试了参考文章,但仍然没有成功: 我的代码:
let path:NSString = NSBundle.mainBundle().bundlePath;
var baseURL:NSURL=NSURL(fileURLWithPath: path as String)!;
var htmlString:String! = texttemp
myWebView.loadHTMLString(htmlString, baseURL: baseURL)
我已经可以加载相同的图像,如下所示 -> 有效:
var image = UIImage(named: "myimage.png");
您更新后的代码不正确。您正在创建包的路径,而不是特定文件的路径。您需要使用 NSBundle 方法 pathForResource:ofType
(或其变体之一)来构建文件路径。然后用它来创建 URL.
pathForResource:ofType
系列方法 return 如果找不到文件则为零,因此您应该检查是否正在返回路径。
编辑:
仔细观察,我发现您正在使用 URL 作为调用 loadHTMLString 的基础 URL。这看起来确实是一种合理的方法。您的 HTML 字符串是什么,捆绑包中的图片在哪里?