2013-12-11 8 views

risposta

4

Questa è una vecchia domanda, ma forse questo sarà utile a qualcuno. Ho fatto questo in un modo seguente:

  1. Agente utente iOS rilevato;
  2. Utilizzato window.matchMedia per determinare il tipo e l'orientamento del dispositivo con le query multimediali;
  3. Controllato window.innerHeight

Dopo i miei esperimenti ho seguito i valori window.innerHeight sperimentali per diversi dispositivi con banner mostrati. Puoi trovarli di seguito:

  • iPhone 6 Plus portrait: 544px;
  • iPhone 6 Plus orizzontale: 286px;
  • iPhone 6 portrait: 475px;
  • iPhone 6 orizzontale: 247px;
  • iPhone 5 & 5S ritratto: 376px;
  • iPhone 5 & 5S landscape: 148px;
  • iPhone 2G, 3G, 4, 4S, iPod Touch generazioni 1-4 ritratto: 288px;
  • iPhone 2G, 3G, 4, 4S, iPod Touch generazioni 1-4 orizzontale: 148px.

Spero che questo aiuti qualcuno.

2

Mentre lo Smart App Banner non viene visualizzato nel DOM, riduce l'altezza disponibile della finestra del browser di 84 pixel (è il numero che ho ottenuto con IOS7 + iPhone5).

Ho intenzione di utilizzare questa diminuzione in window.innerHeight per determinare se SmartBanner è visualizzato.

(avrò bisogno di determinare se l'utente ha iPhone4 o iPhone5)

Safari Mobile ha altri pezzi che interessano il window.innerHeight ma al massimo il menu in basso (quota, ecc) e il più grande la barra degli indirizzi in alto riduce l'altezza disponibile di 69 pixel (anche questo è quello che ho ottenuto tramite Safari Web Inspector).

+0

Grazie Sono venuto a questa soluzione anche. –

+0

Come verificarlo, window.innerHeigth e screen.height mostrano valori diversi anche se lo Smart App Banner non viene visualizzato nel DOM –

2

se si sta utilizzando jQuery:

hasSmartBanner = window.innerHeight !== $(window).innerHeight(); 
Problemi correlati