溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時(shí)間:2021-06-04 15:59:28 來(lái)源:億速云 閱讀:173 作者:Leah 欄目:web開(kāi)發(fā)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)webapp字號(hào)大小跟隨系統(tǒng)字號(hào)大小縮放,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

第一種方案

最簡(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)象。

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

上述就是小編為大家分享的webapp字號(hào)大小跟隨系統(tǒng)字號(hào)大小縮放了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI