Android WebView 踩坑日记,字体怎么突然变小了?
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
属性,进行适配
[](()总结
================================================================
如果 html 是自己拼接的,并且像素是 px,不要设置 WebViewSetting 的
setLoadWithOverviewMode
,setUseWideViewPort
(默认属性是 false),否则字体可能显示不正常,偏大或者偏小如果 html 是自己拼接的,并且像素是 px,当我们设置 WebViewSetting 的
setLoadWithOverviewMode
,setUseWideViewPort 为 true(根据屏幕自适应),那么我们需要设置 html 的viewport
规则,否则可能显示不正常html 如果是自己拼接的,需要注意适配规则,像个人签名这种,用 webView 承载自己拼接的 html ,防止踩坑
[](()WebView 字体常见的其他坑
==============================================================================
[](()手机设置字体大小导致h5页面在webview中变形
出现这个问题的原因是
默认浏览器中的内容是不受系统字体大小设置控制的,至少我遇到的几台手机都是这样的情况。
某些机型 WebView 字体的大小是受手机系统字体大小控制的
问题解决方案来自这篇文章:[blog.csdn.net/FungLeo/art…](()
这个通常有两种解决方案。
[](()Web js 网页解决方案
一般,我们动态计算好html的font-size之后,我们就啥都不干了,就走了。
但是,我们现在知道了,我们设置的大小不一定是真实的大小,所以,我们需要在设置完字体大小之后,再去重新获取一下html的font-size,看看实际的这个值,和我们设置的是不是一样。
如果不一样,就要根据比例再设置一次。
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 的解决思路。
线上突然出现问题,一直找不出问题,尝试一下二分法,逐步缩小范围。
有时候,我们找到解决方案,却不一定知道原因是什么,这时候,可以多问一下自己,背后的原因是什么?在排查的过程中,我们会逐渐培养自己的一套问题解决思路,听起来很虚,但是确实存在的。
知道原因之后,我们可以继续再进一步排查一下,项目中其他模块是不是也存在这样的问题。
以后要怎么规避之类问题?写个 wiki 或者博客记录一下
[](()推荐阅读
这几篇文章从 0 到 1,讲解 DAG 有向无环图是怎么实现的,以及在 Android 启动优化的应用。
推荐理由:启动优化动不动就聊拓扑结构,这篇文章从数据结构到算法到设计都给大家说清楚了,开源项目也有非常强的借鉴意义。
[Android 启动优化(一) - 有向无环图](()
[Android 启动优化(二) - 拓扑排序的原理以及解题思路](()
[Android 启动优化(三)- AnchorTask 开源了](()
[Android 启动优化(四)- AnchorTask 是怎么实现的](()
[Android 启动优化(五)- AnchorTask 1.0.0 版本正式发布了](()
Android WebView 踩坑日记,字体怎么突然变小了?相关推荐
- Android WebView 踩坑日记,字体怎么突然变小了???
背景 最近,端内在做 webView 统一的时候,个性签名中的 WebView 替换为 CustomWebView 之后,发现字体突然变小. 一开始不知道是什么原因,通过二分法查找最近的提交,排查之后 ...
- Android webView 的一个坑,字体怎么突然变小了
搜索发现 Web 网页的代码适配单位是 rem,有点类似于 dp. Web 网页在适配分辨率的时候,通常会设置 viewport 属性 于是我尝试在代码里面加了这样的代码,发现 SignatureWe ...
- 【Flutter混合开发踩坑日记之‘applicationVariants‘ for extension ‘android‘】
Flutter混合开发踩坑日记之'applicationVariants' for extension 'android' 正文 坑一:Could not get unknown property ' ...
- ReactNative 在丁香医生项目中引入的踩坑日记
ReactNative 在丁香医生项目中引入的踩坑日记 this没绑定到函数导致空指针 参考 React-Native 踩坑第二弹-undefined is not a function(evalua ...
- Android applink 踩坑指南
Android applink 踩坑指南 原理 接入步骤 将链接与activity关联起来 加入meta data 生成身份验证JSON 真机测试 结论 官方文档 原理 与url scheme不同的地 ...
- 全志哪吒D1-H Tina Linux Ubuntu 22.04入门踩坑日记
哪吒D1-H Tina Linux入门踩坑日记 系统环境 源码编译 mklibs-readelf的C++标准问题 m4的SIGSTKSZ问题 libfakeroot的_STAT_VER问题 read_ ...
- Win11 + Ubuntu18.04 双系统踩坑日记
Win11 + Ubuntu18.04 双系统踩坑日记 前言 准备工作 硬件配置 镜像下载 Win11镜像下载 Ubuntu镜像下载 启动盘准备 Win11启动盘 Ubuntu启动盘 Win11安装 ...
- Swarm-BZZ踩坑日记之 如何让METMASK小狐狸显示gbzz
刚入门bzz的新手还不知道小狐狸是什么的请移步上一章节:Swarm-BZZ踩坑日记之 如何在METMASK小狐狸导入节点地址 在浏览器安装好小狐狸,并添加自己的钱包地址后 会发现只显示ETH,并不显示 ...
- springboot踩坑日记—nacos: Error watching Nacos Service change
springboot踩坑日记-nacos: Error watching Nacos Service change Spring Boot :: (v2.1.5.RELEASE) 错误代码: 07-3 ...
最新文章
- linux命令grpck,不可不知的的grpck命令【每日一个知识点第184期-Linux】
- 三年python面试题_300道Python面试题
- php长脚本,长PHP脚本运行多次
- ECCV 2018 | 腾讯AI Lab提出视频再定位任务,准确定位相关视频内容
- Ubunt中卸载protobuf与安装3.6.0版本步骤
- React开发(149):二位数组的使用
- 猎户座计划软件测试,四核配置跑分:猎户座4412性能强劲_平板电脑评测-中关村在线...
- Bootstrap 流式布局
- 细数嵌入式开发与通用系统开发的不同
- 【Java数据结构】链式存储的二叉树
- 【ERROR】:LNK1123: failure during conversion to COFF
- Python编写软件与从倍福PLC通讯软件
- STM8S103 LCD5110例程带字库
- 库卡机器人示教器截屏_KUKA库卡机器人示教器维修
- [微信小程序]搜索功能实现,搜索框样式
- @Resource和@Autowired注解的区别
- linux里sh命令是做什么的?详解!
- 人工智能会拥有意识吗?
- 用户直接关闭浏览器,直接退出登陆的实现方法【php+thinkphp】
- 美通企业日报 | 亚马逊AWS三项举措推进量子计算技术;海航渝富重组西部航空...
热门文章
- 形容java工作者的句子_形容工作努力的句子(共20句)
- 程序人生 | C语言字节对齐问题详解 - 对齐/字节序/位序/网络序等(上)
- oracle期间平均成本,小李飞刀系列之Oracle EBS期间平均成本(PAC)--生产成本计算(三)资源成本计算...
- 印度为何“盛产” CEO?
- C语言:计算两个数字的加法
- 微信小程序生成二维码之传参(接收的参数乱码该咋解决)
- 打印PDF 无法指定到 具体的页码
- 【附源码】Python计算机毕业设计蔬菜订购系统
- 用 Python 快速追踪基金的收益情况!
- 《趣学Python编程》笔记---第一部分:学习编程(3)