1

作为 iOS9 的一部分,我们在 WKWebView 中引入了新方法loadData ()。

我有 NSData 对象,它是我想在 WKWebView 中呈现的 UIImageJPEGRepresentation 的输出。在 iOS9 之前,为了在 wkwebview 中渲染图像,我是:

  • 将 nsdata 作为 .jpeg 文件存储在本地文件系统上
  • 使用 fileWithUrl 初始化方法创建一个 nsurl
  • 调用 wkwebview.loadRequest(url) 其中 url 是在上一步中创建的 nsurl

我希望利用新的 iOS9 方法,我可以直接调用 wkwebview.loadData(nsdata, MIMEType:"image", characterEncoding:"ASCII", baseURL: NSURL("random"))

我无法使用上面的 loadData 调用来渲染图像。我为 MIMEType、characterEncoding 和 baseUrl 传递的参数可能有问题。在任何地方都找不到此方法调用的任何示例。

笔记:

  • 我不确定渲染图像时使用什么字符编码
  • baseUrl 不能为 nil,因此将其初始化为随机 url
4

2 回答 2

0

这可能是一个迟到的答案,我们在我们的一个项目中遇到了类似的问题,解决这个问题的一种方法是通过将内容嵌入到 html 中来使用 html 的功能。

func loadDataContent(data:Data,mimeType:String) {
    let urlStr = "<iframe width=\"100%\" height=\"100%\" src=\"data:\(mimeType);base64,\(data.base64EncodedString())\"></iframe>"
    webBrowser?.loadHTMLString(urlStr, baseURL: nil)
}
于 2020-01-31T05:47:52.927 回答
-1

这对我有用:

    if let path = NSBundle.mainBundle().pathForResource("Test", ofType: "jpg") {
        if let data = NSData(contentsOfFile: path) {
            webView.loadData(data, MIMEType: "image/jpeg",
                characterEncodingName: "", baseURL: NSURL(string: "")!)
        }
    }

和看起来有点奇怪,但我怀疑它们与加载characterEncodingName类型数据有关。baseURLimage/jpeg

于 2015-10-18T14:43:00.013 回答