zoukankan      html  css  js  c++  java
  • 如何消除手机设置的字体大小对Cordova app(Android)界面font-size的影响

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

      现在发现其实不需要用安卓编辑器打开,也能找到这个文件,路径是platformsandroidCordovaLibsrcorgapachecordovaengineSystemWebViewEngine.java,用任意编辑器打开修改即可。

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

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

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

      webView.getSettings().setTextZoom(100);

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

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

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

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

      找到 CordovaLibjavaorg.apache.cordovaengineSystemWebViewEngine.java 文件,里面有一个 initWebViewSettings 方法,在里面可以对webView进行一些修改。

    1 webView.setInitialScale(0);
    2 webView.setVerticalScrollBarEnabled(false);
    3 // Enable JavaScript
    4 final WebSettings settings = webView.getSettings();
    5 settings.setJavaScriptEnabled(true);
    6 settings.setJavaScriptCanOpenWindowsAutomatically(true);
    7 settings.setLayoutAlgorithm(LayoutAlgorithm.NORMAL);

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

      settings.setTextZoom(100);

      即可。

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

  • 相关阅读:
    PHP WAMP关闭notice等提示
    PowerDesigner 逆向工程 从SQL文件转换成PDM 从PDM转成CDM
    Servlet 各种path路径比较
    数据库一对一的两种关联 主键关联和外键关联
    Java Timer定时器
    VS2010彻底卸载
    VS2010每次编译都重新编译整个工程的解决方案
    DbgPrint/KdPrint输出格式控制
    error TRK0002: Microsoft Visual Studio 10.0VCinlink.exe Access is denied.
    WinDbg F9时“code not found breakpoint not set”
  • 原文地址:https://www.cnblogs.com/happymental/p/9755849.html
Copyright © 2011-2022 走看看