我知道之前有人问过这个问题,但我的情况有点不同。
我正在尝试调用 WKWebview
上的 loadHTMLString(_ baseURL:)
,我的 baseURL 位于 AppData/Documents
目录中。
我需要加载 HTMLstring
并且它需要使用该目录中的图像。 HTMLstring
不在任何地方,我下载字符串解析它,修改它并加载它。
据我所知,由于某种安全问题我不能这样做(它在 UIWebview 上运行良好),因此加载了 HTMLstring
但图像和 CSS
不是。
此外,我无法调用 loadFileURL(_, allowingReadAccessTo:)
因为我没有文件 我有 HTMLstring
并且无法保存它由于我自己的安全问题,在通话前提交文件。
我的代码很大而且很复杂我想以最轻松的方式实现加载图片。
有人有想法吗?
最佳答案
我希望我有更好的答案,如果有人有更好的答案,我会很乐意接受。 我最终将我的文件移动到临时目录:(我用过这个 -
extension FileManager
{
func copyToTemporaryDirectory(itemIn itemURL: URL) -> URL?
{
let tempDirectoryURL = URL(fileURLWithPath: NSTemporaryDirectory())
let fileName = itemURL.lastPathComponent
let copyURL = tempDirectoryURL.appendingPathComponent(fileName)
let fileManager = FileManager.default
do {
if fileManager.fileExists(atPath: copyURL.path)
{
try fileManager.removeItem(at: copyURL)
}
try FileManager.default.copyItem(at: itemURL, to: copyURL)
return copyURL
}
catch let error
{
logger.debug("copyItem error: \(error.localizedDescription)")
return nil
}
}
}
然后 loadHtmlString
和此目录的 URL
。从这个目录,WKWebview 被允许获取所有内容。
关于iOS WKWebview loadHTMLString(_ baseURL :) fails to load images and read css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60025501/