parsedHtml += “<meta name=“viewport” content=“width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover”>”;

Web 网页字体的适配规则,这里就不班门弄斧了,有兴趣的可以自行搜索。

[](()端内其他地方排查


我们知道,加载自定义 html,通常需要调用 loadDataWithBaseURL 方法,查看端内调用的地方,发现其他都是正常的。只有这个奇葩 SignatureWebView ,自 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 己拼接的 html 没有加 viewport 属性,进行适配

[](()总结

================================================================

  1. 如果 html 是自己拼接的,并且像素是 px,不要设置 WebViewSetting 的 setLoadWithOverviewModesetUseWideViewPort(默认属性是 false),否则字体可能显示不正常,偏大或者偏小

  2. 如果 html 是自己拼接的,并且像素是 px,当我们设置 WebViewSetting 的 setLoadWithOverviewMode ,setUseWideViewPort 为 true(根据屏幕自适应),那么我们需要设置 html 的 viewport 规则,否则可能显示不正常

  3. html 如果是自己拼接的,需要注意适配规则,像个人签名这种,用 webView 承载自己拼接的 html ,防止踩坑

[](()WebView 字体常见的其他坑

==============================================================================

[](()手机设置字体大小导致h5页面在webview中变形


出现这个问题的原因是

  1. 默认浏览器中的内容是不受系统字体大小设置控制的,至少我遇到的几台手机都是这样的情况。

  2. 某些机型 WebView 字体的大小是受手机系统字体大小控制的

问题解决方案来自这篇文章:[blog.csdn.net/FungLeo/art…](()

这个通常有两种解决方案。

[](()Web js 网页解决方案

  1. 一般,我们动态计算好html的font-size之后,我们就啥都不干了,就走了。

  2. 但是,我们现在知道了,我们设置的大小不一定是真实的大小,所以,我们需要在设置完字体大小之后,再去重新获取一下html的font-size,看看实际的这个值,和我们设置的是不是一样。

  3. 如果不一样,就要根据比例再设置一次。

function htmlFontSize(){

var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);

var w = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);

var width = w > h ? h : w;

width = width > 720 ? 720 : width

var fz = ~~(width*100000/36)/10000

document.getElementsByTagName(“html”)[0].style.cssText = 'font-size: ’ + fz +“px”;

var realfz = ~~(+window.getComputedStyle(document.getElementsByTagName(“html”)[0]).fontSize.replace(‘px’,‘’)*10000)/10000

if (fz !== realfz) {

document.getElementsByTagName(“html”)[0].style.cssText = 'font-size: ’ + fz * (fz / realfz) +“px”;

}

}

[](()客户端 WebView 禁止缩放

Android WebView 是可以通过 WebSettings 禁止网页字体缩放的,可以通过 setTextZoom 方法解决

webview.getSettings().setTextZoom(100)

可以禁止缩放,按照百分百显示。

[](()小结

================================================================

这篇文章主要是记录 bug 的一个解决过程,技术含量不高,但是有一定的参考价值。尤其是 bug 的解决思路。

  1. 线上突然出现问题,一直找不出问题,尝试一下二分法,逐步缩小范围。

  2. 有时候,我们找到解决方案,却不一定知道原因是什么,这时候,可以多问一下自己,背后的原因是什么?在排查的过程中,我们会逐渐培养自己的一套问题解决思路,听起来很虚,但是确实存在的。

  3. 知道原因之后,我们可以继续再进一步排查一下,项目中其他模块是不是也存在这样的问题。

  4. 以后要怎么规避之类问题?写个 wiki 或者博客记录一下

[](()推荐阅读


这几篇文章从 0 到 1,讲解 DAG 有向无环图是怎么实现的,以及在 Android 启动优化的应用。

推荐理由:启动优化动不动就聊拓扑结构,这篇文章从数据结构到算法到设计都给大家说清楚了,开源项目也有非常强的借鉴意义。

[Android 启动优化(一) - 有向无环图](()

[Android 启动优化(二) - 拓扑排序的原理以及解题思路](()

[Android 启动优化(三)- AnchorTask 开源了](()

[Android 启动优化(四)- AnchorTask 是怎么实现的](()

[Android 启动优化(五)- AnchorTask 1.0.0 版本正式发布了](()

Android WebView 踩坑日记,字体怎么突然变小了?相关推荐

  1. Android WebView 踩坑日记,字体怎么突然变小了???

    背景 最近,端内在做 webView 统一的时候,个性签名中的 WebView 替换为 CustomWebView 之后,发现字体突然变小. 一开始不知道是什么原因,通过二分法查找最近的提交,排查之后 ...

  2. Android webView 的一个坑,字体怎么突然变小了

    搜索发现 Web 网页的代码适配单位是 rem,有点类似于 dp. Web 网页在适配分辨率的时候,通常会设置 viewport 属性 于是我尝试在代码里面加了这样的代码,发现 SignatureWe ...

  3. 【Flutter混合开发踩坑日记之‘applicationVariants‘ for extension ‘android‘】

    Flutter混合开发踩坑日记之'applicationVariants' for extension 'android' 正文 坑一:Could not get unknown property ' ...

  4. ReactNative 在丁香医生项目中引入的踩坑日记

    ReactNative 在丁香医生项目中引入的踩坑日记 this没绑定到函数导致空指针 参考 React-Native 踩坑第二弹-undefined is not a function(evalua ...

  5. Android applink 踩坑指南

    Android applink 踩坑指南 原理 接入步骤 将链接与activity关联起来 加入meta data 生成身份验证JSON 真机测试 结论 官方文档 原理 与url scheme不同的地 ...

  6. 全志哪吒D1-H Tina Linux Ubuntu 22.04入门踩坑日记

    哪吒D1-H Tina Linux入门踩坑日记 系统环境 源码编译 mklibs-readelf的C++标准问题 m4的SIGSTKSZ问题 libfakeroot的_STAT_VER问题 read_ ...

  7. Win11 + Ubuntu18.04 双系统踩坑日记

    Win11 + Ubuntu18.04 双系统踩坑日记 前言 准备工作 硬件配置 镜像下载 Win11镜像下载 Ubuntu镜像下载 启动盘准备 Win11启动盘 Ubuntu启动盘 Win11安装 ...

  8. Swarm-BZZ踩坑日记之 如何让METMASK小狐狸显示gbzz

    刚入门bzz的新手还不知道小狐狸是什么的请移步上一章节:Swarm-BZZ踩坑日记之 如何在METMASK小狐狸导入节点地址 在浏览器安装好小狐狸,并添加自己的钱包地址后 会发现只显示ETH,并不显示 ...

  9. springboot踩坑日记—nacos: Error watching Nacos Service change

    springboot踩坑日记-nacos: Error watching Nacos Service change Spring Boot :: (v2.1.5.RELEASE) 错误代码: 07-3 ...

最新文章

  1. linux命令grpck,不可不知的的grpck命令【每日一个知识点第184期-Linux】
  2. 三年python面试题_300道Python面试题
  3. php长脚本,长PHP脚本运行多次
  4. ECCV 2018 | 腾讯AI Lab提出视频再定位任务,准确定位相关视频内容
  5. Ubunt中卸载protobuf与安装3.6.0版本步骤
  6. React开发(149):二位数组的使用
  7. 猎户座计划软件测试,四核配置跑分:猎户座4412性能强劲_平板电脑评测-中关村在线...
  8. Bootstrap 流式布局
  9. 细数嵌入式开发与通用系统开发的不同
  10. 【Java数据结构】链式存储的二叉树
  11. 【ERROR】:LNK1123: failure during conversion to COFF
  12. Python编写软件与从倍福PLC通讯软件
  13. STM8S103 LCD5110例程带字库
  14. 库卡机器人示教器截屏_KUKA库卡机器人示教器维修
  15. [微信小程序]搜索功能实现,搜索框样式
  16. @Resource和@Autowired注解的区别
  17. linux里sh命令是做什么的?详解!
  18. 人工智能会拥有意识吗?
  19. 用户直接关闭浏览器,直接退出登陆的实现方法【php+thinkphp】
  20. 美通企业日报 | 亚马逊AWS三项举措推进量子计算技术;海航渝富重组西部航空...

热门文章

  1. 形容java工作者的句子_形容工作努力的句子(共20句)
  2. 程序人生 | C语言字节对齐问题详解 - 对齐/字节序/位序/网络序等(上)
  3. oracle期间平均成本,小李飞刀系列之Oracle EBS期间平均成本(PAC)--生产成本计算(三)资源成本计算...
  4. 印度为何“盛产” CEO?
  5. C语言:计算两个数字的加法
  6. 微信小程序生成二维码之传参(接收的参数乱码该咋解决)
  7. 打印PDF 无法指定到 具体的页码
  8. 【附源码】Python计算机毕业设计蔬菜订购系统
  9. 用 Python 快速追踪基金的收益情况!
  10. 《趣学Python编程》笔记---第一部分:学习编程(3)