WKWebView加载本地字体

WKWebView加载本地字体,第1张

合理的设计都千篇一律, 奇葩的需求各有各的不同。

从URL加载页面,加载完成后,修改页面字体:

⚠️ 注意:此方法存在性能问题, let fontEncoding = fontData.base64EncodedString() 在字体文件较大的情况下会严重影响性能!

✅ 若从本地加载 htmlString ,请参考 stackoverflow 。

在网上找了很多方法我就不废话了 先一一列举出来

第一种方法:这种方法适配屏幕不是太好,双击才可以完全适配屏幕,有兴趣的话可以自己试一下

第二种方法:

在初始化WKWebView的时候添加配置可以解决自适应的问题 ,但是在加载的内容宽度大于高度的时候就有些不准确了,宽度无法自适应屏幕的宽度,最后我也没搞明白是因为什么原因,最后就放弃了这个方法。

//自适应屏幕宽度js

在加载的过程中我使用KVO监听加载的进度,从而获取最后加载内容的高度。

根据WKWebView的状态去判断是否加载完成:

有可能需要用到进度条和title属性

一定一定要记得移除KVO监听

第三种方法 也是我最后使用的方法:

我的需求是让图片的大小跟着屏幕的变化而变化,就是动态的去适应屏幕;那么文字的字体就是自己可以控制,可大可小。要想达到这样的效果,在用loadHTMLString加载字符串之前对它进行处理

处理HTMLString的原理:

原理就是用一个for循环,拿到所有的图片,对每个图片都处理一次,让图片的宽为100%,就是按照屏幕宽度自适应;让图片的高atuo,自动适应。文字的字体大小,可以去改font-size:14px


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11266334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存