美文网首页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 的文件夹中的图片.

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

  • WKWebView的坑之图片显示不完全

    最近在做iPad Pro适配时遇到了WKWebView图片显示不完全的坑 在显示网页中的大尺寸图片时,图片显示不完...

  • WKWebview无图模式

    需求:WKWebview要求设置无图模式,不显示WKWebview中的所有图片 1.程序开始运行默认加载规则,方便...

  • 数据持久化

    沙盒路径 2)获取library路径 3)获取temp路径 4)保存一张图片到documents下的ios文件夹中...

  • iOS 沙盒存储

    沙盒里的文件夹包括Documents、Library、tmp。这三个文件夹 Documents:应用中用户数据可以...

  • ThinkPHP模块设计

    创建新应用 MAC是在/Library/WebServer/Documents创建新的文件夹->在新建文件夹中创建...

  • 沙盒

    数据库文件放在沙盒文件夹下的Documents文件夹下 沙盒里边有三个文件夹: Documents(默认为空) L...

  • 怪物猎人世界 codex 存档位置

    C:\Users\Public\Documents文件夹下的 Steam和CoopLand文件夹

  • iOS 本地写入、存储数据,沙盒机制

    iphone沙盒中有4个文件夹,documents、tmp、app、library。 Documents 目录:您...

  • 读取文件夹中的图片 依次显示

    上周做的。版本:VS2015,Halcon2012 效果:读取文件夹中的图片(文件夹的路径是从其他函数传过来的,图...

网友评论

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

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