Подтвердить что ты не робот

PhoneGap/Cordova Android получит размер экрана после onDeviceReady

Android-приложение возвращает недопустимый размер (320x480) в событии onDeviceReady, но через несколько секунд размер становится правильным.

Как мы можем получить правильный размер в самом начале? Или есть какое-то событие, на котором я могу получить правильный размер?

Я использую эту функцию для получения размера:

function getWindowSizes() {
  var windowHeight = 0, windowWidth = 0;
  if (typeof (window.innerWidth) == 'number') {
      windowHeight = window.innerHeight;
      windowWidth = window.innerWidth;
      
  } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
      windowHeight = document.documentElement.clientHeight;
      windowWidth = document.documentElement.clientWidth;
      
  } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
     windowHeight = document.body.clientHeight;
     windowWidth = document.body.clientWidth;
  }
  return [windowWidth, windowHeight];
}

Viewport:

<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />

Использование Cordova 2.5.0.

UPD:
Как вы можете видеть на этом скриншоте, приложение запускается с меньшим размером. Даже пустой проект "Кордова" делает это. Как я могу это исправить?

enter image description here

Спасибо!

4b9b3361

Ответ 1

Удалить значения высоты, ширины и плотности в мета-заголовке.

Ответ 2

Попробуйте удалить target-densitydpi в заголовке.

IP-адрес устройства основан на физических пикселях, в то время как пиксели css являются логическими пикселями, они несколько раз отличаются друг от друга, если вы вынуждаете их одинаково, вы увидите растянутый экран.

window.devicePixelRatio может дать вам результат преобразования. (On webkit)

Update:

В этой ссылке содержится более подробная информация о том, как она работает: https://petelepage.com/blog/2013/02/viewport-target-densitydpi-support-is-being-deprecated/

Ответ 3

Попробуйте удалить позицию: абсолютное свойство в классе приложения (внутри index.css). Это работает для меня.