最近開發公眾號遇到一個問題:
iOS、Android 加載頁面,如果用戶調整了微信自帶的字體大小,那么我們的頁面就會跟隨調整字體大小,導致頁面錯亂無法適配。所以希望能夠禁止微信的字體放大功能。
找了一些方法總結如下:
原理:阻止ios和安卓調整字體大小時候的事件,ios通過添加css屬性,安卓通過微信屬性去阻止。
iOS系統禁止微信客戶端修改字體大小:
/* iOS禁止微信調整字體大小 */ body { -webkit-text-size-adjust: 100% !important; text-size-adjust: 100% !important; -moz-text-size-adjust: 100% !important; }
Android 則通過js 調整:
<script> // 強制禁止用戶修改微信客戶端的字體大小 (function() { 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 }); }); } })(); </script>