2013-03-14 11 views
11

L'app Android restituisce una dimensione non valida (320x480) nell'evento onDeviceReady, ma dopo alcuni secondi la dimensione diventa corretta.PhoneGap/Cordova Android ha dimensioni dello schermo dopo onDeviceReady

Come possiamo ottenere la dimensione corretta all'inizio? O c'è qualche evento in cui posso ottenere le dimensioni corrette?

sto usando questa funzione per ottenere dimensioni:

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

Finestra:

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

Utilizzando Cordova 2.5.0.

UPD:
Come si può vedere su questo screenshot l'applicazione si avvia con dimensioni più piccole. Anche il vuoto progetto Cordova lo fa. Come posso risolvere questo?

enter image description here

Grazie!

+2

qualsiasi progresso in quella materia ? Qualche risposta ha funzionato per te? – Fardin

+0

Ho il problema, qualche progresso? – poordeveloper

+0

Purtroppo non sto sviluppando più le applicazioni Cordova. Se avrò tempo cercherò di riprodurre e controllare le seguenti soluzioni. Ma se non funziona per te, non funzionerà neanche per me. – dymv

risposta

3

Rimuovi le proprietà di altezza, larghezza e densità nell'indice meta header.

+0

Puoi spiegare la tua risposta un po 'più in dettaglio? Sembra una ipotesi cieca ... – Trinimon

+1

Io uso Thierry

0

Provare a rimuovere la posizione: proprietà assoluta nella classe dell'app (all'interno di index.css). Questo funziona per me.

1

Provare a rimuovere target-densitydpi nell'intestazione.

dpi dispositivo si basa su pixel fisici mentre i pixel css sono pixel logici, sono alcune volte diverse l'uno dall'altro, se li imponi allo stesso, vedrai lo schermo allungato.

window.devicePixelRatio può dare risultato della conversione (su WebKit)

Aggiornamento:.

Questo link forniscono qualche dettaglio in più su come funziona: https://petelepage.com/blog/2013/02/viewport-target-densitydpi-support-is-being-deprecated/

+0

Firefox fornisce anche un valore per 'window.devicePixelRatio'. – Chris

Problemi correlati