我在我的ViewController中有一个WkWebView,我用webview加载本地html。该代码是这样的:WebView插入本地图像到html无法成功?
guard let path = Bundle.main.url(forResource: "editor", withExtension: "html") else {
return
}
webView.load(URLRequest(url: path))
1:我从photoLibrary选择一个图像,然后我把它保存到文件的目录。
private func fileName() -> String {
let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "[email protected]"
return "/" + formatter.string(from: date) + ".png"
}
func saveImage(_ image: UIImage) {
guard let imageData = UIImageJPEGRepresentation(image, 1.0) else {
return
}
let directory = NSHomeDirectory().appending("/Documents")
let path = directory.appending(fileName())
let fileManager = FileManager.default
do {
try fileManager.createDirectory(atPath: directory, withIntermediateDirectories: true, attributes: nil)
fileManager.createFile(atPath: path, contents: imageData, attributes: nil)
} catch {
SHLog("saveImage: \(error)")
}
}
2:我拿来图像路径然后我用web视图的方法,以插入图像。
func evaluateJs(_ imagePath: String) {
webView.evaluateJavaScript("insertImage('\(imagePath)')") { (response, error) in
}
}
insertImage()是一个从本地js文件中获取方法,它可以将图像插入到html中。
如果我使用本地的ImagePath,我无法插入图片的HTML。但是,当我使用真实的网址时,它可以工作。我不知道原因,任何人都可以帮助我。谢谢。
嗨,@Jack龙,你看着办吧?我有同样的问题。 Thx〜 – Jerome
将html文件和图像保存在同一个文件夹下面,它将解决这个问题。你可以在这里看到[链接](http://blog.csdn.net/longshihua/article/details/78008594) –