关于安卓webview viewport的问题

最近在写react-native的项目的webview 引入了一个html,发现viewport无效,页面很宽在安卓下会出现滚动条,而在ios里面会自动缩小展示,想实现安卓也像苹果那样自动缩小显示,但是调了viewport一直没有效果

网上查找了发现文章链接https://blog.csdn.net/eastbird/article/details/48679295

对于ios设备,设置width可以生效,但对于android,设置width并不会生效。ios设备,缩放的比率即dpi是通过你设置的width和设置真实分辨率自动计算的,而android下你设置width无效,也就是说,有三个变量:浏览器width、设备真实width、dpi。 我们简单地用个公式来表达它们之间的关系吧(并非真实关系,简单说明用) 设备真实width * dpi = 浏览器width,这里的三个变量,设备真实width是个我们不能操作的已知值,另外两个变量我们可以设置一个来影响另一个,在ios中,我们能改的是浏览器width,dpi自动生成,而在android中,我们能改的是dpi,浏览器width自动生成。对于android,无论我们如何设置width,也不会对浏览器width产生影响。 ios设备在横竖屏时,会自动调整dpi,无论横屏还是竖屏,都能保证浏览器width等于viewport中设置的值,所以横竖屏的时候,页面里显示的内容的大小是会自动缩放产生变化的。而android手机在横竖屏的时候,不会改变dpi,在横竖屏的时候,网页不会产生缩放。也正因此,ios可以保证横竖屏页面都不会产生滚动条,满屏显示。

网上找了很久,终于发现一篇有效,链接为:https://github.com/mishe/blog/issues/152 然后我自己稍微改了一下w1的方法,然后加了

scalesPageToFit={Platform.OS === 'ios'? true : false}

181931_NyTy_2004710.jpg

html 页面动态设置viewport:

<script>
        document.write('<meta id="vp" name="viewport" content="width=device-width,initial-scale=0.5' +
            ',user-scalable=yes">')
</script>

ps:最近发现<script> document.write('<meta id="vp" name="viewport" content="width=device-width,initial-scale=0.5' + ',user-scalable=yes">') </script>这个script真是有用 ,有个用到webview的地方,写了一个二叉树 ,然后页面老是出现横向的滚动条,不能一屏展示,每个节点和连接线调试了很久老是调的不满意,后来突然想起这个方法,然后设置initial-scale=0.8 缩放就可以把二叉树展示在一屏之内了。

 

转载于:https://my.oschina.net/caiyue/blog/1813719

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值