Android,WebView.getWidth()== window.innerWidth

时间:2012-04-22 23:12:47

标签: android zoom scale dpi

我应该使用HTML中的META标记设置和Java中的WebSettings的哪种组合来获得以下结果:Javascript中的window.innerWidth应始终(在任何Android版本和任何设备上)等于WebView宽度(以像素为单位)。

例如,我将WebView宽度设置为1024px。在Android AVD模拟器中,window.innerWidth等于683px(1024的2/3,或150%比例)。

我尝试了以下META:

<meta name="viewport" content="width=device-width;
user-scalable=no; initial-scale=1.0;
minimum-scale=1.0; maximum-scale=1.0;" />

- 不起作用。

然后我尝试了:

_WebView.getSettings().setLoadWithOverviewMode(true);
_WebView.getSettings().setUseWideViewPort(true);
_WebView.setInitialScale(100);

- 也不起作用。

最后,

_WebView.getSettings().setDefaultZoom(ZoomDensity.FAR);

似乎有效。根据文档,它意味着“100%看起来像240dpi”。我不知道,dpi用户设备有什么!如何正确完成任务?

更新

我刚刚在高dpi平板电脑上测试了ZoomDensity.FAR - 它在没有的情况下运行并且无法使用它!

此致

1 个答案:

答案 0 :(得分:3)

  1. META:

    meta name =“viewport”content =“width = device-width; user-scalable = no; initial-scale = 1.0; 最小尺度= 1.0;最大规模= 1.0;的目标densityDpi =设备dpi的;“

  2. 爪哇:

    _WebView.getSettings()setLoadWithOverviewMode(真); 。_WebView.getSettings()setUseWideViewPort(真);

  3. 这种组合有效。