===================== 更新分割线 ===================

  现在发现其实不需要用安卓编辑器打开,也能找到这个文件,路径是platforms\android\CordovaLib\src\org\apache\cordova\engine\SystemWebViewEngine.java,用任意编辑器打开修改即可。

  ===================== 以下是原文 ===================  

  最近在用vue+cordova做一个app,前期一直在PC上看效果,今天试着打包成了app,想看看在手机上运行的效果。结果发现和预期的效果不一样,很多布局有一些错位。可是明明我在PC上调试的时候,有切换不同型号的手机看效果的,都没有问题,排版和布局也都是用的rem,按道理应该显示效果不会出现那么大的纰漏的。

  后来发现是因为我修改设置了手机的显示字体大小的,如果我将手机字体大小改为标准的,则显示效果就正常了,所以我就在网上搜索了一下消除这种影响的解决办法,百度到了这么一个方法:

  webView.getSettings().setTextZoom(100);

  这行代码的作用主要是设置webview里的字体不跟随系统字体发生改变。

  好了,解决办法有了,那么问题来了,在哪里加上这行代码呢?我不懂原生代码,也是刚刚开始接触hybrid app和cordova,知道这个得在安卓代码里改,可是却不知道去哪里改。然后我可爱的老公帮我解决了,手动表白老公❤ @吃馒头的火鸡。

  下面附上如何添加此代码:

  用过cordova的朋友知道,用cordova打包app之前,先要添加一个platform,我这里添加的是Android平台,添加以后,其实就是生成了一个安卓的解决方案工程,将这个工程用Android Studio(其他的可开发安卓的编辑器应该也行)打开,就能看到里面的java代码。

  找到 CordovaLib\java\org.apache.cordova\engine\SystemWebViewEngine.java 文件,里面有一个 initWebViewSettings 方法,在里面可以对webView进行一些修改。

 webView.setInitialScale(0);
webView.setVerticalScrollBarEnabled(false);
// Enable JavaScript
final WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setLayoutAlgorithm(LayoutAlgorithm.NORMAL);

  这是其内部其中的一部分代码,我们紧接着这些代码之后追加设置字体的代码即可,因为这里面有把webView.getSettings()赋值给settings变量,所以我们只需在其后追加

  settings.setTextZoom(100);

  即可。

  ok,保存一下,重新打包app,完美解决。

如何消除手机设置的字体大小对Cordova app(Android)界面font-size的影响的更多相关文章

  1. Intellij IDEA如何设置快速调整字体大小的快捷键

    Intellij IDEA快速调整字体大小的快捷键 第一种方法(方便) 单击左上角File,找到Settings并点击.(当然也可以直接Alt+Ctrl+s) 点击Editor下的General,勾选 ...

  2. rem在三星s5部分机型情况下 设置的字体大小与手机实际字体大小不一致问题

    rem在三星s5部分机型情况下 设置的字体大小与手机实际字体大小不一致问题 判断是特殊机型,做特殊处理. var u=navigator.userAgent; if($(window).width() ...

  3. 设置MyEclipse字体大小

    设置MyEclipse字体大小

  4. [Android] 字体使用dp单位避免设置系统字体大小对排版的影响

    [Android] 字体使用dp单位避免设置系统字体大小对排版的影响 以魄族mx3为例,在设置->显示->字体大小中能够选择字号大小例如以下图: 图1. 魄族mx3 会导致软件在有固定定高 ...

  5. Android系统移植与调试之------->如何修改Android默认字体大小和设置里面字体大小比例

    因为我修改 ro.sf.lcd_density的值,将它从160修改 为120,所以导致整个系统的字体都变得很小.因此需要将整个字体变大,并且在设置-->显示-->字体大小的4个选项的值都 ...

  6. 安卓下设置系统字体大小影响H5页面布局

    问题描述: 调整好的h5页面,放在安卓app内嵌页面后布局正常,后来用户调整系统里面字体大小,后内嵌H5布局乱掉 问题分析: 因为用户调整了系统字体的大小,修改了根节点和body节点的font-siz ...

  7. 设置同样字体大小,chrome浏览器有时字体偏大的解决办法(转)

    本文是找了在网上搜了好久才找到非常棒的一篇文章,很好的解决了这个问题. 原文地址:https://github.com/amfe/article/issues/10 这个特性被称做「Text Auto ...

  8. [转]响应式网页设计:rem、em设置网页字体大小自适应

    本文转自:http://www.cnblogs.com/aimyfly/archive/2013/07/19/3200742.html 「rem」是指根元素(root element,html)的字体 ...

  9. 响应式网页:用em,rem设置网页字体大小自适应

    「rem」是指根元素(root element,html)的字体大小,好开心的是,从遥远的 IE6 到版本帝 Chrome 他们都约好了,根元素默认的 font-size 都是 16px.这样一个新的 ...

随机推荐

  1. Python--Django学习笔记1

    Django:The Web framework for perfectionists with deadlines Django是一个Python语言开发的高级Web框架,采用MVC架构,通过配置可 ...

  2. Java NIO -- 通道 Channel

    通道(Channel):由 java.nio.channels 包定义的.Channel 表示 IO 源与目标打开的连接.Channel 类似于传统的“流”.只不过 Channel本身不能直接访问数据 ...

  3. HDU 3605 Escape (网络流,最大流,位运算压缩)

    HDU 3605 Escape (网络流,最大流,位运算压缩) Description 2012 If this is the end of the world how to do? I do not ...

  4. CF1043

    找个下午打了场CF,结果被某uranus吊打......一千多名,过弱. T1,一眼二分了,后来发现题解是O(1)的hhh T2,题意精炼一下就是让你找一个串的循环节个数,直接n²枚举..... T3 ...

  5. 【洛谷P4054】计数问题

    题目大意:维护 N*M 个点,每个点有三个权值,支持单点修改,查询矩形区间内权值等于某个值的点的个数. 题解:矩阵可以看成两个维度,权值为第三个维度,为一个三维偏序维护问题.发现第三维仅仅为单点修改和 ...

  6. MVC中权限的知识点及具体实现代码

    一:知识点部分 权限是做网页经常要涉及到的一个知识点,在使用MVC做权限设计时需要先了解以下知识: MVC中Url的执行是按照Controller->Action->View页面,但是我们 ...

  7. django---APIView源码分析

    django---APIView源码分析 前言:APIView基于View 看这部分内容一定要懂django-CBV里的内容 在django-CBV源码分析中,我们是分析的from django.vi ...

  8. 跟我一起学习vue2(学习工程目录)[三]

    查看生成的my-project的工程目录 首先看 build是最终发布的代码存放位置. 我查看了一下目录,里面都是Js文件 config目录里面主要是配置目录,包括端口号.如果开的项目多,可以进入in ...

  9. strace常用参数详解

    strace常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. strace命令大家应该比我熟悉吧,如果你不知道,呵呵,会可能跟我一样被人说:“我怀疑你是假运维”,不过没关 ...

  10. mysql命令备份和还原

    1.导出整个数据库 mysqldump -u用户名 -p密码  数据库名 > 导出的文件名  C:\Users\jack> mysqldump -uroot -pmysql sva_rec ...