我有一个使用视口META标记的网站告诉移动浏览器如何显示内容()。在Android浏览器中查看页面看起来是正确的(和iPhone等)。
当我将页面加载到Android应用程序中的WebView组件时,WebView忽略“VIEWPORT”标记,并以“完整”分辨率呈现页面,在这种情况下放大。
答案 0 :(得分:22)
经过大量的实验,我确定如果实际页面的宽度比视口设置宽,Android WebView将不会遵循“视口”设置。
例如,我设置的视口为500px,但我的页面上有一个强制960px宽度的元素。视口没有被遵守,因为WebView拒绝隐藏额外的内容。
当我输入它时,这似乎很明显,但我必须花费数天时间处理这个问题。
答案 1 :(得分:9)
正如文档在最佳答案的链接中所说,您可以使用元标记指定设备应该如何响应Web应用与屏幕相比的大小。以下标记使Android手机尊重我的网络应用的视口大小:
<meta name="viewport" content="target-densitydpi=high-dpi" />
答案 2 :(得分:9)
尝试使用WebSetting类
的这种方法setUseWideViewPort (boolean use)
我用它来告诉Android webview考虑我的“viewport”标签
答案 3 :(得分:3)
根据WebView
文档中的“构建支持不同屏幕密度的网页”部分仔细检查您的实施:http://developer.android.com/reference/android/webkit/WebView.html
答案 4 :(得分:1)
在某些Android手机上实现的另一个失败的事实是,例如HTC Desire HD将忽略视口TAG - user-scale = no completly。
答案 5 :(得分:1)
在我的场景中,使用固定宽度,解决方案是:
settings.setUseWideViewPort(true)
settings.setLoadWithOverviewMode(true)
答案 6 :(得分:0)
我只能确认您的问题。在android问题跟踪器上有一个open issue。如果你受此影响,请给它投票/明星。
答案 7 :(得分:0)
唯一对我有用的是
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, minimum-scale=1.0, shrink-to-fit=no" />
但专门为现有标记添加maximum-scale=1.0, minimum-scale=1.0
有帮助。对于我的具体情况,我不想让用户能够放大/缩小YMMV。
答案 8 :(得分:-1)
使用此:
<meta name="viewport" content="width=320, user-scalable=no, target-densitydpi=low-dpi" />
现在Android WebView和浏览器遵循视口设置。
Phew,这需要进行大量调整才能做到正确。老天。