webapp字号大小跟随系统字号大小缩放

最近一个项目,使用vue开发的前端,原生webview嵌套H5页面,领导想让手机系统字号变大后webview里的H5页面字号也变大,现在H5里面有的地方能变大,有的不变大,不统一。适配方式是采用的rem做的适配,单独文本label字号可以变大,像类似输入框input,textarea里面的字号就没有变大,有没有人做过类似的,可有解决方案。

阅读 2.9k
1 个回答

由于采用的是rem适配方式,和安卓的同事商量后,在他获取到系统调整的字号后,将缩放比例传给我,我在根据他传入的参数调整html上的fontsize大小,之后页面上的元素大小自然就会根据根元素的大小进行调整。

setScaleFont(){
      let fontScale=1;
      let scaleFontSize;
      let initFontSize;
      fontScale=parseFloat(window._nativeMe.getFontScale());
      console.log(`缩放比例:${fontScale}`);
      let docHtml=document.getElementsByTagName("html")[0];
      initFontSize=this.getStyle(docHtml,'fontSize').split('px')[0];
      scaleFontSize=fontScale*initFontSize;//1-1.4等比缩放
      docHtml.style.fontSize=scaleFontSize +'px';
    },
    getStyle(obj, name){
      if(window.currentStyle){
        return obj.currentStyle[name];
      }
      else{
        return getComputedStyle(obj, false)[name];
      }
    },

此种方法只在安卓适用,苹果由于权限问题获取不到系统字号大小的缩放,故无效。如果有大神有办法解决苹果的放大缩小问题,请告知,不胜感激

推荐问题