亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

webapp字號(hào)大小跟隨系統(tǒng)字號(hào)大小縮放

hover_lew / 887人閱讀

摘要:和安卓同事商量后,他去獲取系統(tǒng)放大的參數(shù),然后將參數(shù)傳遞給內(nèi)部,內(nèi)部來(lái)自定義控制縮放。這種方案必須確保先讓的適配先執(zhí)行,然后判斷是否是安卓,如果是安卓就執(zhí)行方法才有效,否則會(huì)被里面的方法覆蓋掉,造成頁(yè)面先放大后縮小或者先縮小后放大的現(xiàn)象。

最近做了一個(gè)webapp項(xiàng)目,混合式開(kāi)發(fā),外部原生,內(nèi)部webview嵌套H5頁(yè)面。前端方面采用了vue開(kāi)發(fā),適配采用的是flexible+rem做的適配。本來(lái)一切都很好,可是吧,領(lǐng)導(dǎo)說(shuō)客戶有的年紀(jì)大 ,看不清字體,希望網(wǎng)頁(yè)字體可以跟隨系統(tǒng)字號(hào)大小變化。當(dāng)時(shí)心里真是...,然無(wú)奈只能想辦法解決問(wèn)題,網(wǎng)上搜羅一圈都是禁止內(nèi)部跟隨系統(tǒng)字號(hào)變化,看來(lái)只能自己搞了。

第一種方案

最簡(jiǎn)單的讓原生進(jìn)行操作,內(nèi)部不做控制,外部放大,里面自己適應(yīng)。但是有問(wèn)題,文本字體可以放大,有的輸入框和輸入框的內(nèi)容卻沒(méi)有放大,故淘汰該方案。

第二種方案

外部原生webview讓里面的放大縮小不跟隨系統(tǒng)變化,內(nèi)部自己控制。和安卓同事商量后,他去獲取系統(tǒng)放大的參數(shù),然后將參數(shù)傳遞給內(nèi)部webapp,內(nèi)部來(lái)自定義控制縮放。
代碼如下:

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];
      }
    }

先獲取到初始的縮放比例,然后根據(jù)安卓原生傳入的縮放比例改寫(xiě)html標(biāo)簽上的fontsize大小,由于采用了rem適配,自會(huì)根據(jù)根元素大小進(jìn)行適配。這種方案必須確保先讓flexible的適配先執(zhí)行,然后判斷是否是安卓,如果是安卓就執(zhí)行setScaleFont方法才有效,否則會(huì)被flexible里面的方法覆蓋掉,造成頁(yè)面先放大后縮小或者先縮小后放大的現(xiàn)象。


如上圖,我是注釋掉了這段代碼,不然就會(huì)產(chǎn)生上述放大縮小的現(xiàn)象。

結(jié)論

該種方法也只能在安卓上有效,蘋(píng)果由于安全權(quán)限的問(wèn)題無(wú)法獲取系統(tǒng)字體的縮放比例,故無(wú)法調(diào)整,如果有大神知道在蘋(píng)果上如何操作或者有別的更好辦法,請(qǐng)告知,不勝感激。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/117131.html

相關(guān)文章

  • 如何更愉快地使用em —— 別說(shuō)你懂CSS相對(duì)單位

    摘要:相對(duì)單位的值會(huì)根據(jù)外部影響因素的變化而變化。很自然,相對(duì)單位使用起來(lái)會(huì)比較困難。在本章中,我將揭開(kāi)相對(duì)單位的神秘面紗。重點(diǎn)來(lái)了,使用相對(duì)單位聲明的值會(huì)由瀏覽器轉(zhuǎn)化為一個(gè)絕對(duì)值,我們稱(chēng)之為計(jì)算值。 showImg(https://segmentfault.com/img/bVbdtsA); 前段時(shí)間試譯了Keith J.Grant的CSS好書(shū)《CSS in Depth》,其中的第二章《W...

    gekylin 評(píng)論0 收藏0
  • 如何更愉快地使用rem —— 別說(shuō)你懂CSS相對(duì)單位

    摘要:值得注意的是,這個(gè)設(shè)置對(duì)使用或其他絕對(duì)單位定義的字號(hào)大小無(wú)效。事實(shí)上,提供了一個(gè)在和間的相對(duì)單位折中解決方案,而且更易于使用。圖使用相對(duì)單位和繼承字號(hào)的面板下面是模板,加到你的頁(yè)面吧。 showImg(https://segmentfault.com/img/bVbdOMr?w=920&h=450); 前段時(shí)間試譯了Keith J.Grant的CSS好書(shū)《CSS in Depth》,其...

    Snailclimb 評(píng)論0 收藏0
  • 前端基本功之從大型項(xiàng)目中迅速定位修改位置

    摘要:前端開(kāi)發(fā),有一項(xiàng)很重要的基本功,就是在大型項(xiàng)目中,比如幾萬(wàn)行代碼中,迅速找到新增功能或調(diào)試的切入點(diǎn)。猜測(cè)輸入框大小跟這個(gè)字號(hào)有關(guān)系。通過(guò)觀察分析和斷點(diǎn)技巧,我們很容易地就從一個(gè)大型項(xiàng)目幾萬(wàn)行代碼中迅速定位到我們要修改的地方。 前端開(kāi)發(fā),有一項(xiàng)很重要的基本功,就是在大型項(xiàng)目中,比如幾萬(wàn)行js代碼中,迅速找到新增功能或調(diào)試bug的切入點(diǎn)。特別是你只是接手這個(gè)項(xiàng)目,并不了解其中每一個(gè)功能點(diǎn)所...

    rubyshen 評(píng)論0 收藏0
  • REM如何無(wú)視手機(jī)系統(tǒng)字號(hào)調(diào)整

    摘要:經(jīng)檢查發(fā)現(xiàn),中的值是正常值,但是出現(xiàn)了一個(gè)匪夷所思的情況頁(yè)面上的以為例,在移動(dòng)端內(nèi)嵌中設(shè)置元素最終出來(lái)的高度竟然是。。。整個(gè)人就蒙圈了,然后突然靈光一閃,發(fā)現(xiàn)是系統(tǒng)的字號(hào)調(diào)大了。。。系統(tǒng)如何處理的這個(gè)展示還沒(méi)有搞清楚。。。 此問(wèn)題屬于REM的優(yōu)化 解決如下問(wèn)題 在移動(dòng)端rem布局中 , 多數(shù)環(huán)境多數(shù)瀏覽器下rem的計(jì)算妥妥的沒(méi)有問(wèn)題 , 但是部分環(huán)境 , 比如某些軟件內(nèi)嵌的webvie...

    王笑朝 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<