禁用微信 webview 调整字体大小
2017-10-30 09:48
1186 查看
微信 webview 内置了调整字体大小的功能,对于网页的可用性来说是一个很实用的功能。一些网页的字体设置过小导致用户看不清文字,调整字体大小即可解决这个问题。
但是对于一些追求显示效果的移动端页面来说,字体大小的调整可能会导致部分文字无法显示甚至是页面布局出错。如图,大众点评案例。
因为这两个系统实现调整字体大小的原理不同,所以需要两种方法来限制微信对网页字体大小的调整。
注意:如果用户之前已经设置过了字体大小,访问网页时会先看到字体被放大后的效果再恢复正常,因为在 WeixinJSBridge 对象初始化完成之后才能通过 WeixinJSBridge 对象的方法设置为默认大小。
但是对于一些追求显示效果的移动端页面来说,字体大小的调整可能会导致部分文字无法显示甚至是页面布局出错。如图,大众点评案例。
解决方案
微信的 iOS 版的调整字体大小使用的是通过给 body 设置 -webkit-text-size-adjust:120% 属性实现的,Android 则是用过 Java 调用 webview 的 API 设置字体大小。因为这两个系统实现调整字体大小的原理不同,所以需要两种方法来限制微信对网页字体大小的调整。
iOS
在 iOS 下,对网页的 body 元素设置 -webkit-text-size-adjust: 100% !important; 可以覆盖掉微信的样式。body { -webkit-text-size-adjust: 100% !important; }
Android
在 Android 下,需要通过 WeixinJSBridge 对象将网页的字体大小设置为默认大小,并且重写设置字体大小的方法,让用户不能在该网页下设置字体大小。(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 }); }); } })();
注意:如果用户之前已经设置过了字体大小,访问网页时会先看到字体被放大后的效果再恢复正常,因为在 WeixinJSBridge 对象初始化完成之后才能通过 WeixinJSBridge 对象的方法设置为默认大小。
相关文章推荐
- 禁用微信 webview 调整字体大小
- 禁用微信 webview 调整字体大小
- wkwebview 字体大小调整 网页内容高度计算
- android phonegap CordovaView 调整字体大小(仿微信)
- iOSWebview与js交互之调整字体大小
- 腾讯X5浏览器 TBS 代替Android WebView展示H5字体大小适配
- webview设置字体颜色、大小
- Android WebView(属性)缩放 字体大小
- ScrollView与WebView结合使用时,设置webview字体大小的时候出现下方留白解决方案
- Android 自定义TextView实现文本内容自动调整字体大小
- WkwebView调节字体大小获取高度
- iOS 修改webView字体大小,设置宽度及缩放效果
- 用xml改变webView的行间距及字体大小
- WebView设置字体默认大小
- AutoFitTextView(Android textview根据字体长度调整字体大小)
- IOS UIWenView 调整页面字体大小
- iOS开发webView设置字体大小的方法
- Android 自定义TextView实现文本内容自动调整字体大小以适应TextView的大小
- iOS中通过设置CSS改变WebView字体大小,颜色,背景颜色
- android webview字体大小的设置