最近發現在微信瀏覽器中調整頁面的字體大小時,會打亂頁面的整個布局,在網上找了找解決的方案,找到了以下此方案,有效的解決了這個問題
目前iOS的解決方案是覆蓋掉微信的樣式:
/* IOS禁止微信調整字體大小 */
body { -webkit-text-size-adjust: 100% !important; }
安卓的解決方案是通過 WeixinJSBridge 對象將網頁的字體大小設置為默認大小,並且重寫設置字體大小的方法,讓用戶不能在該網頁下設置字體大小:
/*
* android禁止微信瀏覽器調整字體大小
* 這種方法會導致網頁延遲大約1S
*/
//android禁止微信瀏覽器調整字體大小 if (typeof WeixinJSBridge == "object" && typeof WeixinJSBridge.invoke == "function") { handleFontSize(); } else { if (document.addEventListener) { document.addEventListener("WeixinJSBridgeReady", handleFontSize, false); } else if (document.attachEvent) { document.attachEvent("WeixinJSBridgeReady", handleFontSize); document.attachEvent("onWeixinJSBridgeReady", handleFontSize); } } function handleFontSize() { // 設置網頁字體為默認大小 WeixinJSBridge.invoke('setFontSizeCallback', { 'fontSize' : 0 }); // 重寫設置網頁字體大小的事件 WeixinJSBridge.on('menu:setfont', function() { WeixinJSBridge.invoke('setFontSizeCallback', { 'fontSize' : 0 }); }); }
這樣解決會出現的問題:
1、如果用戶在標准情況下,打開頁面。再調整字體大小,那么頁面依舊正常。
2、如果用戶先調整了字體大小,再打開頁面,頁面會變大,一秒之后恢復正常。
注:采用loading,可解決2的問題