2011-09-14 5 views

risposta

60

trovato.

if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) { 
    if (browserRatio >=1.5) { 
     $container.css('min-height', '360px'); 
    } else { 
     $container.css('min-height', '555px'); 
    } 
} 
+5

navigator.userAgent.match (/ (iPod | iPhone | iPad)/i) ha funzionato per me laddove il tuo no (il che lo rende senza distinzione tra maiuscole e minuscole) –

+7

Potrebbe compattare ulteriormente ulteriormente:/(ip (hone | od | ad))/i :) – backdesk

+0

Questa non è una soluzione definitiva, in quanto corrisponde anche a WP IE. Esempio UA da IE11: 'Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv: 11.0; IEMobile/11.0; NOKIA; Lumia 925) come iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, come Gecko) Mobile Safari/537' – seniorpreacher

2

so che stai chiedendo circa jquery in particolare, ma IMO, è quasi certamente voglio usare CSS3 @media queries per questo. C'è anche il supporto per i test per landscape or portrait orientation.

@media (orientation:landscape) { 
    .container_selector { 
    min-height: 555px; 
    } 
} 
@media (orientation:portrait) { 
    .container_selector { 
    min-height: 360px; 
    } 
} 

Spero che questo aiuti!

+0

ti sento .. uso + amarli, ma per questo esempio, è calci in un min -altezza che è solo per iOS quando non è in modalità web app. Quindi deve essere Script :( – technopeasant

+0

e io posso scegliere come target iPhone 4 in particolare con -webkit-min-device-pixel-ratio: 2, ma sfortunatamente non c'è css if/then a meno che tu non usi una libreria specializzata – technopeasant

+0

così, potresti usare le proprietà window.screen.height/width, o non sarebbe di aiuto? Non so cosa intendi per "quando non in modalità web app". – jimbojw

-1

Sulla base dei commenti alla mia risposta precedente, sembra che la vera domanda sia "come nascondi la barra dell'URL in un iPhone". A questa domanda, ho trovato questo:

How to Hide the Address Bar in MobileSafari:

<body onload="setTimeout(function() { window.scrollTo(0, 1) }, 100);">...</body> 
+1

no, non lo è. Mi piacerebbe identificare l'agente utente iOS per applicare un if/then dichiarazione per chiarire la modalità web app su iOS, ho fatto un piccolo diagramma: http://cl.ly/0d2V0o3O453a123v192u – technopeasant

+0

bel mock up (s) e bella idea jimbojw, userà in futuro. – Brandito

1

Affinché questo funzioni che si sta per bisogno di definire browserWidth, ma sì che funzionerà. Qui ho preso di mira solo l'iPad.

$(window).load(function(){ 
     var browserWidth = $(window).width(); 

     if (navigator.userAgent.match(/(iPad)/)) { 
     if (browserWidth == 768) { 
      $('.sectionI').css({'margin-left': '30px'}); 
     } else if (browserWidth == 1024) { 
      $('.sectionI').css({'margin-left': '0px'}); 
     } 
     } 
    }); 
0

Per la versione di app Web provare questo.

if (
    ("standalone" in window.navigator) && 
    !window.navigator.standalone 
    ){ 

    // .... code here .... 
} 
0

Per assicurarsi questa stringa non venga abbinato: Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 925) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537 basta modificare il codice per

if (navigator.userAgent.match(/(\(iPod|\(iPhone|\(iPad)/)) { 
    if (browserRatio >=1.5) { 
     $container.css('min-height', '360px'); 
    } else { 
     $container.css('min-height', '555px'); 
    } 
}