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

Какую комбинацию настроек тега META в HTML и WebSettings в Java я должен использовать, чтобы получить следующий результат: window.innerWidth в Javascript всегда (в любой версии Android и на любом устройстве) должен быть равен ширине WebView в пикселях.

Например, я установил ширину WebView на 1024 пикселя. В эмуляторе Android AVD значение window.innerWidth равно 683 пикселям (2/3 от 1024 или масштаб 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% похоже на 240 dpi». Я не знаю, какое dpi у пользовательского устройства! Как правильно выполнить задание?

ОБНОВЛЕНИЕ

Я только что протестировал ZoomDensity.FAR на планшете с высоким разрешением — он работает без него и не работает с ним!

С уважением,


person noober    schedule 22.04.2012    source источник


Ответы (1)


  1. МЕТА:

    meta name="viewport" content="width=device-width; user-scalable=no; начальный масштаб=1,0; минимальный масштаб=1,0; максимальный масштаб=1,0; target-densityDpi=device-dpi< /сильный>;"

  2. Ява:

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

Эта комбинация работает.

person noober    schedule 23.04.2012