美文网首页iOS Developer
WKWebView 显示 Documents 的文件夹中的图片.

WKWebView 显示 Documents 的文件夹中的图片.

作者: zoro_x | 来源:发表于2016-08-24 20:56 被阅读434次

    最近在写邮件的内嵌的图片显示. 对于邮件来说内嵌图片是一种特殊的附件. 所以需要把邮件 HTML 中对应的 img 的 src 换成相应的地址.

    但是因为我们的附件是保存在 Documents 中, 而 WKWebView 却不能显示 Documents 中的图片. 估计是因为一个已知的bug. 在进行搜索后, 大概有以下三个解决方案;

    • 采用新的API, 在 iOS 9 之后出了一个新的 API :

    loadFileURL(_:allowingReadAccessTo:)

    从第二个参数来看是可以解决这个问题的. 如果把要显示的 HTML 存储在 Documents 中, 并通过第二个参数允许访问 Documents 应该是可以解决问题. 不过因为还要支持 iOS 9 以下的系统. 我并没有尝试这个方案.

    • 搭建一个简单的服务器.

    这个方法太过复杂, 不到迫不得已不会采用. 但是一定是有效的.

    • 将图片转换为 Base64.

    HTML 是支持直接将 img 标签的 src 的值直接放一个 Base64 的编码.
    比如:

    <img src="data:img/png;base64, ADDDFEIONVJDSLGKJSLF ..">

    利用这个特性就能绕开这个限制. 实现在 WKWebView 中显示图片. 实现也很简单. 只有两行:

    let imageData = NSData(contentsOfURL: imageURL)
    // 默认的选项正好符合要求.
    let encodedString = imageData.base64EncodedStringWithOptions([])
    

    相关文章

      网友评论

        本文标题:WKWebView 显示 Documents 的文件夹中的图片.

        本文链接:https://www.haomeiwen.com/subject/xpyosttx.html