2013-03-14 7 views
11

Android App gibt ungültige Größe (320x480) auf onDeviceReady Ereignis zurück, aber nach ein paar Sekunden wird die Größe korrekt.PhoneGap/Cordova Android erhalten Bildschirmgröße nach onDeviceReady

Wie können wir gleich am Anfang die richtige Größe bekommen? Oder gibt es ein Ereignis, bei dem ich die richtige Größe erreichen kann?

Ich verwende diese Funktion Größe zu erhalten:

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]; 
} 

Ansichtsfenster:

<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" />

Mit Cordova 2.5.0.

UPD:
Wie Sie auf diesem Screenshot sehen können, startet die Anwendung mit kleinerer Größe. Auch das leere Cordova-Projekt macht das. Wie kann ich das beheben?

enter image description here

Dank!

+2

jeder Fortschritt in dieser Angelegenheit ? Jede der Antworten hat für dich funktioniert? – Fardin

+0

Ich habe das Problem, irgendeinen Fortschritt? – poordeveloper

+0

Leider entwickle ich Cordova Anwendungen nicht mehr. Wenn ich Zeit habe, werde ich versuchen, die folgenden Lösungen zu reproduzieren und zu überprüfen. Aber wenn es für dich nicht funktioniert, wird es auch nicht für mich funktionieren. – dymv

Antwort

3

Entfernen Sie Höhe, Breite und Dichte Eigenschaften auf Meta-Header-Index.

+0

Können Sie Ihre Antwort ein wenig genauer erklären? Sieht aus wie eine blinde Vermutung ... – Trinimon

+1

Ich benutze Thierry

0

Versuchen Sie, die Position zu entfernen: absolute Eigenschaft in der App-Klasse (in index.css). Das funktioniert für mich.

1

Versuchen Sie, Ziel-Dichtedpi in der Kopfzeile zu entfernen.

Gerät dpi basiert auf physischen Pixeln, während CSS-Pixel logische Pixel sind, sie sind manchmal voneinander verschieden, wenn Sie sie zu den gleichen zwingen, sehen Sie Bildschirm gestreckt.

window.devicePixelRatio können Sie von der Umwandlung führen geben (auf Webkit)

Update:.

Dieser Link einige weitere Details darüber, wie es funktioniert: https://petelepage.com/blog/2013/02/viewport-target-densitydpi-support-is-being-deprecated/

+0

Firefox bietet ein Wert für 'window.devicePixelRatio'. – Chris

Verwandte Themen