家明故事

禁止微信内置浏览器调整字体大小

家明 0 2

微信webview内置了调整字体大小的功能,用户可以根据实际情况进行调节。

但是这也会导致字体大小改变以后,我们以rem布局的H5页面出现布局错乱的情况,目前ios的解决方案是覆盖掉微信的样式:

body { /* IOS禁止微信调整字体大小 */
    -webkit-text-size-adjust: 100% !important;
}

安卓的解决方案是通过 WeixinJSBridge 对象将网页的字体大小设置为默认大小,并且重写设置字体大小的方法,让用户不能在该网页下设置字体大小:

/*
* android禁止微信浏览器调整字体大小
*/
(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
            });
        });
    }
})();

以上是关于禁止微信内置浏览器调整字体大小的主要内容,希望对您有帮助!


标签:前端笔记  微信浏览器  调整字体  rem  rem布局  

打赏

发表评论