日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Android webView字體突然變小的原因及解決

瀏覽:165日期:2022-09-20 13:24:20
背景

最近,端內(nèi)在做 webView 統(tǒng)一的時(shí)候,個(gè)性簽名中的 WebView 替換為 CustomWebView 之后,發(fā)現(xiàn)字體突然變小。

一開(kāi)始不知道是什么原因,通過(guò)二分法查找最近的提交,排查之后,發(fā)現(xiàn)是 SignatureWebView 的繼承關(guān)系從 WebView 修改為 CustomWebView。revert 之后就正常了。

于是,我問(wèn)自己,為什么會(huì)這樣呢?

原因分析

我們知道,WebViewSetting 里面是可以修改 WebView 的一些默認(rèn)設(shè)置的。

閱讀官方文檔,發(fā)現(xiàn) setLoadWithOverviewMode,setUseWideViewPort 這兩個(gè)方法看起來(lái)跟 WebView 縮放相關(guān)。

于是嘗試把 setLoadWithOverviewMode 改為 false,很神奇,竟然正常了。

setLoadWithOverviewMode

這個(gè)方法的作用,簡(jiǎn)單來(lái)說(shuō),就是是否根據(jù)屏幕寬度自適應(yīng)

Sets whether the WebView loads pages in overview mode, that is, zooms out the content to fit on screen by width. This setting is taken into account when the content width is greater than the width of the WebView control, for example, when getUseWideViewPort() is enabled. The default is false.

developer.android.com/reference/a…

這個(gè)問(wèn)題解決之后,我心中又有這樣的疑問(wèn),為什么別的地方?jīng)]有問(wèn)題,只有個(gè)性簽名這里的 WebView 有問(wèn)題。

帶著這個(gè)疑問(wèn),我再次去瀏覽代碼,發(fā)現(xiàn)個(gè)性簽名里面 Webview 加載的網(wǎng)頁(yè),是自己拼接的 html。debug 之后,發(fā)現(xiàn)網(wǎng)頁(yè)代碼大概是這樣的

<span style='word-wrap:break-word;font-family:system-ui;font-size:16px;color:#888888;'>Https://www.baidu.com</span>

可以看到里面字體的單位是 px,跟 Android 的 dp px 有點(diǎn)像,是不是沒(méi)作屏幕適配?

搜索發(fā)現(xiàn) Web 網(wǎng)頁(yè)的代碼適配單位是 rem,有點(diǎn)類(lèi)似于 dp。

Web 網(wǎng)頁(yè)在適配分辨率的時(shí)候,通常會(huì)設(shè)置 viewport 屬性

于是我嘗試在代碼里面加了這樣的代碼,發(fā)現(xiàn) SignatureWebView 顯示個(gè)性簽名又正常了。

parsedHtml += '<meta name='viewport' content='width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover'>';

Web 網(wǎng)頁(yè)字體的適配規(guī)則,這里就不班門(mén)弄斧了,有興趣的可以自行搜索。

端內(nèi)其他地方排查

我們知道,加載自定義 html,通常需要調(diào)用 loadDataWithBaseURL 方法,查看端內(nèi)調(diào)用的地方,發(fā)現(xiàn)其他都是正常的。只有這個(gè)奇葩 SignatureWebView ,自己拼接的 html 沒(méi)有加 viewport 屬性,進(jìn)行適配

總結(jié) 如果 html 是自己拼接的,并且像素是 px,不要設(shè)置 WebViewSetting 的 setLoadWithOverviewMode ,setUseWideViewPort(默認(rèn)屬性是 false),否則字體可能顯示不正常,偏大或者偏小 如果 html 是自己拼接的,并且像素是 px,當(dāng)我們?cè)O(shè)置 WebViewSetting 的 setLoadWithOverviewMode ,setUseWideViewPort 為 true(根據(jù)屏幕自適應(yīng)),那么我們需要設(shè)置 html 的 viewport 規(guī)則,否則可能顯示不正常 html 如果是自己拼接的,需要注意適配規(guī)則,像個(gè)人簽名這種,用 webView 承載自己拼接的 html ,防止踩坑 WebView 字體常見(jiàn)的其他坑手機(jī)設(shè)置字體大小導(dǎo)致h5頁(yè)面在webview中變形

出現(xiàn)這個(gè)問(wèn)題的原因是

默認(rèn)瀏覽器中的內(nèi)容是不受系統(tǒng)字體大小設(shè)置控制的,至少我遇到的幾臺(tái)手機(jī)都是這樣的情況。 某些機(jī)型 WebView 字體的大小是受手機(jī)系統(tǒng)字體大小控制的

這個(gè)通常有兩種解決方案。

Web js 網(wǎng)頁(yè)解決方案 一般,我們動(dòng)態(tài)計(jì)算好html的font-size之后,我們就啥都不干了,就走了。 但是,我們現(xiàn)在知道了,我們?cè)O(shè)置的大小不一定是真實(shí)的大小,所以,我們需要在設(shè)置完字體大小之后,再去重新獲取一下html的font-size,看看實(shí)際的這個(gè)值,和我們?cè)O(shè)置的是不是一樣。 如果不一樣,就要根據(jù)比例再設(shè)置一次。

function htmlFontSize(){ var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); var w = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); var width = w > h ? h : w; width = width > 720 ? 720 : width var fz = ~~(width*100000/36)/10000 document.getElementsByTagName('html')[0].style.cssText = ’font-size: ’ + fz +'px'; var realfz = ~~(+window.getComputedStyle(document.getElementsByTagName('html')[0]).fontSize.replace(’px’,’’)*10000)/10000 if (fz !== realfz) { document.getElementsByTagName('html')[0].style.cssText = ’font-size: ’ + fz * (fz / realfz) +'px'; }}客戶(hù)端 WebView 禁止縮放

Android WebView 是可以通過(guò) WebSettings 禁止網(wǎng)頁(yè)字體縮放的,可以通過(guò) setTextZoom 方法解決

webview.getSettings().setTextZoom(100)小結(jié)

這篇文章主要是記錄 bug 的一個(gè)解決過(guò)程,技術(shù)含量不高,但是有一定的參考價(jià)值。尤其是 bug 的解決思路。

線(xiàn)上突然出現(xiàn)問(wèn)題,一直找不出問(wèn)題,嘗試一下二分法,逐步縮小范圍。 有時(shí)候,我們找到解決方案,卻不一定知道原因是什么,這時(shí)候,可以多問(wèn)一下自己,背后的原因是什么?在排查的過(guò)程中,我們會(huì)逐漸培養(yǎng)自己的一套問(wèn)題解決思路,聽(tīng)起來(lái)很虛,但是確實(shí)存在的。 知道原因之后,我們可以繼續(xù)再進(jìn)一步排查一下,項(xiàng)目中其他模塊是不是也存在這樣的問(wèn)題。 以后要怎么規(guī)避之類(lèi)問(wèn)題?寫(xiě)個(gè) wiki 或者博客記錄一下

以上就是Android webView字體突然變小的原因及解決的詳細(xì)內(nèi)容,更多關(guān)于Android webView字體突然變小的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品一区二区精品| 999精品一区| 国产精品巨作av| 日韩电影二区| 亚洲欧美日韩国产一区二区| 日韩国产欧美三级| 韩国精品主播一区二区在线观看| 婷婷五月色综合香五月| 欧美sss在线视频| 欧美影院视频| 国产精品日韩欧美一区| 日韩av不卡在线观看| 免费在线看一区| 成人午夜网址| 国产精品一页| 蘑菇福利视频一区播放| 欧美片第1页| 国产精久久久| 日本在线不卡视频一二三区| 国产资源在线观看入口av| 日本亚洲三级在线| 亚洲一区免费| 国产综合婷婷| 欧美亚洲国产精品久久| 久久精品国产一区二区| 91亚洲精品视频在线观看 | 欧美天堂在线| 亚洲精选成人| 亚洲精品一级| 亚洲精品影视| 中文字幕一区二区三区在线视频| 蜜臀久久99精品久久一区二区| 成人亚洲精品| 国产剧情在线观看一区| 一本综合精品| 亚洲欧洲午夜| 国产欧美一区二区色老头| 日本一区免费网站| 欧美伊人影院| 国产精品久久久久毛片大屁完整版 | 综合干狼人综合首页| 蜜桃久久久久久久| 亚洲精品在线二区| 日韩av成人高清| 久久99国产精品视频| 国产精品大片免费观看| 国产精品亚洲二区| 日韩欧美午夜| 老司机精品久久| 69堂精品视频在线播放| 丁香婷婷久久| 极品日韩av| 日本精品在线播放| 成人在线免费观看网站| 美女少妇全过程你懂的久久| 综合亚洲视频| 国产精品99一区二区三区| 成人久久一区| 巨乳诱惑日韩免费av| 日韩激情中文字幕| 精品国产欧美日韩| 伊人久久高清| 日韩中文字幕麻豆| 久久亚洲精品中文字幕| 亚洲高清av| 国产精品入口久久| 夜夜嗨一区二区| 成人午夜亚洲| 日韩精品免费观看视频| 成人亚洲欧美| 日韩福利视频一区| 激情欧美日韩一区| 久久麻豆视频| 久久国产99| 樱桃视频成人在线观看| 鲁大师成人一区二区三区| 国产精品白浆| 丝袜美腿一区二区三区| 久久久久久一区二区| 日韩精品一区二区三区中文在线 | 日韩国产欧美一区二区| 亚洲人成精品久久久| av高清不卡| 精品国产三区在线| 亚洲精品影院在线观看| 亚洲精品极品| 精品亚洲精品| 国产日韩一区二区三区在线| 日韩理论片av| 精品一区二区三区中文字幕| 日本a级不卡| 在线观看亚洲精品福利片| 久久在线视频免费观看| av日韩中文| 国产资源在线观看入口av| 国产精品宾馆| 精品国模一区二区三区| 亚洲精品动态| 欧美午夜精品一区二区三区电影| 日本一区二区三区中文字幕| 日本在线精品| 久久精品国产999大香线蕉| 久久亚洲国产| 日韩手机在线| 五月精品视频| 久久免费精品| 国产欧美久久一区二区三区| 亚洲欧美日韩在线观看a三区| 精品淫伦v久久水蜜桃| 天堂精品久久久久| 国产毛片一区| 色老板在线视频一区二区| 国产精品久久久久久久久久久久久久久 | 麻豆一区二区三区| 久久精品免费看| 日韩国产欧美在线视频| 99视频精品| 欧美日韩第一| 香蕉国产精品| 久久青草久久| 国产精品高颜值在线观看| 久久国产人妖系列| 日韩精品社区| 国产欧美一区二区精品久久久| 亚洲欧洲日韩精品在线| 午夜电影一区| 亚洲一级淫片| 欧美一级二区| 天堂va在线高清一区| 欧美一区91| 麻豆国产精品一区二区三区| 国产精品a级| 国产一区二区三区亚洲综合| 精品美女视频 | 中文字幕日本一区二区| 免费在线欧美视频| 蜜臀va亚洲va欧美va天堂 | 免费看一区二区三区| 亚洲精品成人| 国产精久久一区二区| 夜夜精品视频| 精品国产不卡| 中文字幕亚洲影视| 国产精品99免费看| 精品国产午夜肉伦伦影院 | 日本成人手机在线| 午夜精品网站| 国产在线看片免费视频在线观看| 亚洲97av| 不卡专区在线| 欧美日韩一二三四| 亚洲精品乱码久久久久久蜜桃麻豆| 青草综合视频| 日本精品不卡| 亚洲精品亚洲人成在线观看| 99久久99久久精品国产片果冰| 你懂的国产精品永久在线| 久久国产88| 免播放器亚洲| 午夜日韩福利| 亚洲午夜一级| 日韩av首页| av高清一区| 国产精品香蕉| 国产日韩一区二区三免费高清| 国产一区亚洲| 秋霞国产精品| 天堂√中文最新版在线| 日本黄色精品| 国产欧洲在线| 日韩一区电影| 亚洲电影有码| 久久久一二三| 99视频一区| 亚洲精品视频一二三区| 日本不卡一二三区黄网| 日韩av中文在线观看| 国产欧美午夜| 色婷婷综合网| av中文字幕在线观看第一页| 精品精品99| 久久精品av| 亚洲在线久久| 欧美黑人巨大videos精品| 卡一精品卡二卡三网站乱码| 国产成人精选| 一区二区三区视频免费观看| 亚洲免费精品| 日韩精品福利一区二区三区| 久久99性xxx老妇胖精品| 国产精品精品国产一区二区| 1000部精品久久久久久久久| 国产精品毛片在线看| 日本免费新一区视频| 久久精品三级| 色爱av综合网| 日韩精品第一| 亚洲一级在线| 少妇精品久久久| 精品国产第一福利网站|