禁止微信內置瀏覽器調整字體大小,從而保證頁面不錯亂


最近發現在微信瀏覽器調整頁面的字體大小時,會打亂頁面的整個布局,在網上找了找解決的方案,找到了以下此方案,有效的解決了這個問題

目前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的問題

 

參考文章: https://segmentfault.com/q/1010000011631008


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM