У меня есть приложение, которое использует Android WebView, а также некоторый JavaScript. Когда мой WebViewClient вызывает onPageFinished()
, я предупреждаю свой JavaScript, чтобы запустить метод инициализации. Мой JavaScript включен и загружен, прежде чем я удалю onPageFinished()
.
В этом методе JavaScript я использую window.innerWidth
. Однако возвращаемое значение всегда неверно и всегда одинаково. Независимо от моей ориентации, она сообщает, что внутренняя ширина равна 320, а внутренняя высота - 240. (Правильные значения ширины для портрета и пейзажа равны соответственно 360 и 598.) В любом другом месте я получаю доступ к window.innerWidth
или window.innerHeight
в JavaScript, который дает мне точное число.
Что более озадачивает то, что если я проверю высоту или ширину WebView непосредственно в моем вызове onPageFinished()
, используя
int height = view.getHeight();
int width = view.getWidth();
то он всегда возвращается правильно (хотя он возвращает точные номера пикселей, а не DIP). Это заставляет меня думать, что все закончило загрузку с помощью WebView, и поэтому у меня не должно быть никаких проблем в моем JavaScript.
Любые идеи относительно того, что происходит?
Спасибо заранее!