唠叨几句:

在移动端再开发的过程中,很容易使用到webview,它也是用来混合开发的中间桥梁,因此解决webview使用过程中出现的问题是非常有必要的;

问题现象与发现:

现象:

日前,在是使用webview加载html过程中出现了一个这样的问题:

页面显示变形;

url中有设置图片,图片展示不全呈截断式;

发现:

其他所有手机都正常,只有一部手机显示不正常(上级的手机,哎);

后来发现该手机比同款同型号手机显示字体略大,才发现该手机系统字体大小被重置;

经过半天测试,出现此问题的必要条件有三:

html页面采用了rem单位,并且是采用js动态计算html的font-size

html页面被加在了APP中的webview中

手机被重设了字体大小

解决方案:

一.移动端解决方案

一行代码:

webView.getSettings().setTextZoom(100);

方案一虽然看起来比较简单,但是如果我们项目已经上线了,就需要重新发版App,就需要更新等一系列操作;再者如果html其他移动端也有使用,这....接下来会发生的事情就靠大家慢慢猜想了!

二、前段兼容,

话不多说直接上代码:

var docEl = document.documentElement,

resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',

recalc = function () {

var clientWidth = docEl.clientWidth || 375;

clientWidth > 750 ? clientWidth = 750 : clientWidth = clientWidth;

if (clientWidth){

const fz = docEl.style.fontSize = 20 * (clientWidth / 375);

docEl.style.fontSize = 20 * (clientWidth / 375) + 'px';

window.remscale = clientWidth / 375;

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";

}

}

};

if (document.addEventListener){

window.addEventListener(resizeEvt, recalc, false);

document.addEventListener('DOMContentLoaded', recalc, false);

}

这段代码,是跟前端开发一起调试验证OK的

在此,感谢前端同学

嘿嘿,咱是移动端开发者,看到这个代码有些蒙蔽,前端开发者一定看得懂...

以上就是解决方式了,希望对您有所帮助...

android webview 字体 系统字体大小,Android 系统字体大小动态改变,导致webview中显示不兼容的问题解决...相关推荐

  1. 安装python系统找不到指定的路径_解决安装过程中显示“系统找不到指定的路径”-百度经验...

    解决软件安装过程中显示"系统找不到指定的路径"?有些用户在变声专家一半时候弹出"无法打开....系统找不到指定的路径"字样,解决方法非常简单,如遇上述问题的小伙 ...

  2. android string.format()长度,Android通过String.format格式化(动态改变)字符串资源的显示内容...

    一.实现效果: 最近在项目中需要做类似于上图显示的效果,里面的数字和称谓是动态获取的,对于这种显示效果,有如下两种解决方案来处理: (1)通过代码动态设置TextView的内容,比如: /** * 显 ...

  3. oracle改字体大小_sqlplus改字体

    sqlplus_font,其值为"terminal". sqlplus_font_size,其值为14,或其他大小的值,如16.18等. 问题3 在SQL*Plus中改变字体和字符 ...

  4. android开发点击展开列表,android - listView点击展开收起实现

    废话不多说, 上图: GIF.gif 上思路: 动态改变数据适配器中的getCount()方法的返回值; 点击刷新适配器中的数据; 注意: 1.这是在普通的布局中实现; 2.如需要在ScrollVie ...

  5. Android 动态改变桌面图标

    其实很简单,利用 AndroidManifest.xml 文件中的 <activity-alias> 标签即可实现. <activity-alias> 介绍 大家知道,对于 A ...

  6. android 设置字体大小不随系统大小变化,App字体大小不随系统改变而改变

    在 "设置" , "显示" , "字体大小" 里面我们可以设置系统字体大小 App界面字体,如果被修改之后,可能就达不到理想状态的效果,界面 ...

  7. android 禁止跟随系统字体,Android 应用全局字体调节或禁止随系统字体大小更改...

    1.禁止跟随系统字体大小调节 在Application中复写getResources()方法 @Override public Resources getResources() {//还原字体大小 R ...

  8. Android禁止app字体大小跟随系统字体大小调节

    Android禁止app字体大小跟随系统字体大小调节 针对字体不随系统应用改变而改变,不然会导致原来的一些布局变化,在Application中重写getResources() @Overridepub ...

  9. Android 解决系统字体变大导致WebView页面显示错乱问题

    在WebView开发过程中,当用户手动修改系统字体变大时,部分手机会出现WebView页面错乱问题. 为了解决这个问题,需要对WebView进行一个设置.在页面加载之前加上一下代码: webview. ...

最新文章

  1. Pytorch的安装教程
  2. 快到极致的Android模拟器——Genymotion
  3. Linux学习总结(四十七)NFS服务配置 上篇
  4. 用markdown写博客园
  5. CTF-Python常用函数语段详解;
  6. 5.cocos2dx中关于draw绘图,声音和音效,预加载,播放与停止Vs暂停和恢复,音量控制
  7. 收藏一个php用的一个页码按钮类
  8. 怎么把空字符串去掉_Python知识点字符串转整数需注意
  9. mysql 数据库文件导入和导出、远程上传和下载数据库
  10. 送给即将春秋招的同学--一名服务端开发工程师的校招面经总结
  11. 终于出手!谷歌母公司旗下GV风投首次投资AI芯片创业公司
  12. [Angular 6] 初学angular,环境全部最新,[ ng serve ] 不能启动,卡在 95% 不动 => 解决方案
  13. Atitit 品牌之道 attilax著 艾龙 著 1. 第1章 品牌和品牌管理 1 2. 第Ⅱ篇 制定品牌战略 2 3. 第Ⅲ篇 品牌营销活动:设计与执行 2 4. 第Ⅳ篇 评估和诠释品牌绩效 3
  14. linux中实现getch函数
  15. Java多商户商城源码 PC+小程序+APP源码+H5 B2B2C商城源码
  16. 大学计算机基础教程第13章数据库技术基础
  17. 存折和银行卡的区别?
  18. wps2022无法加载此加载项程序mathpage.wll
  19. 记笔记非常好用的一款工具 eDiary
  20. ACS运动控制:ACSPL+ 总结

热门文章

  1. ab plc编程软件_AB编程软件及所有组态软件授权及安装教程包含FTViewV11
  2. java判断日期是否是同一周_JAVA里面怎样判断一个日期是否是星期六或者星期天,给出原代码,多谢!!!!!!!!!!...
  3. js for foreach 快慢_js基本搜索算法实现与170万条数据下的性能测试
  4. android 热修复视频,Android热修复
  5. win7电脑蓝屏的解决方法
  6. 妙用世界之窗浏览器的隐私保护功能
  7. 简单地使用webpack进行打包,一些常见打包错误
  8. 后台返回给前端json字段的大小写问题,Lombok的坑@Data,@Getter
  9. java中static、final 和 static final之间的区别
  10. 一开机就提示脱机工作_「华为手机维修自学教程」华为手机的开机触发电路 华为维修技巧...