2012-03-29 17 views
21

posso controllare per iPhone con questo codice:Come posso controllare Windows Phone useragent con javascript?

(navigator.userAgent.match(/iPhone/i)) 

Ma voglio indirizzare Windows Phone con questo userAgent:

Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; 
Motorola_ES405B_19103; Windows Phone 6.5.3.5) 

Esiste un modo per fare questo?

+0

Hai provato a usare un 'match' corrispondenza ciò che si desidera utilizzare? Se hai e non funziona, ti preghiamo di dire cosa hai provato. –

+0

Sì, ci ho provato. Ma voglio abbinare una certa versione del telefono Windows. – oceanen

risposta

42

Windows Phone sembra essere il termine che si desidera abbinare. Quindi basta scambiare iPhone nel tuo matcher con quel termine e sei a posto!


Come accennato nei commenti: alla ricerca anche per iemobile vi darà una gamma ancora più ampia di sistemi operativi rilevati cellulari Microsoft.

es .:

if(navigator.userAgent.match(/Windows Phone/i)){ 
    alert('Is a windows phone!'); 
} 

if(navigator.userAgent.match(/iemobile/i)){ 
    alert('Is some mobile IE browser!') 
} 

// and probably less common, but still useful: 
if(navigator.userAgent.match(/WPDesktop/i)){ 
    alert('It is a windows phone in desktop mode!') 
} 
+0

Va fino a 7.5 o posso specificare anche la versione min? Mi piace se (navigator.userAgent.match (/ Windows Phone <7) o qualcosa del genere .. – oceanen

+0

Corrisponde a un'espressione regolare, quindi può corrispondere solo a ciò che vedi, ma dal momento che il numero di versione è incluso nell'agente utente, puoi ancora usare '(navigator.userAgent.match (/ Windows Phone [1-6]/i))' per abbinare tutte le versioni da uno a 6. – devsnd

+0

Oh, va bene! Grazie! – oceanen

18

Nokia Lumia o un qualsiasi browser WPhone ha desktop e modalità di navigazione mobile, IEMobile invia user agent diverso. La modalità desktop non invia l'argomento del modello Windows Phone X.Y. Trova i tag Windows + ARM + Touch + WPDesktop e possibilmente le dimensioni dello schermo per indovinare wphone o tablet. È un hack che conosco.

Lumia 920 WPhone 8, scrivania modalità
Mozilla/5.0 (compatible; MSIE 10,0; Windows NT 6.2; Trident/6.0; ARM; tocco; WPDesktop)

Lumia 920 WPhone 8
Mozilla/5.0 (compatible; MSIE 10,0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; tocco; NOKIA; Lumia 920)

Lumia 820 WPhone 8
Mozilla/5.0 (c ompatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; BRACCIO; Toccare; NOKIA; Lumia 820)

Lumia 630 WPhone 8
Mozilla/5.0 (Windows Phone 8.1; ARM; Trident/7.0; tocco; rv: 11,0; IEMobile/11.0; NOKIA; id313-3) come Gecko

Lumia 630 WPhone 8, modalità desktop
Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0; tocco; rv: 11,0; WPDesktop; NOKIA; id313-3) come Gecko

Lumia 800 WPhone 7.5
Mozilla/5.0 (compatibile; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800)

Lumia 900
Mozilla/5.0 (compatible;

WP7.5 IEMobile9 desktop di Lumia 900); MSIE 9.0, Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA mode
Mozilla/5.0 (compatibile; MSIE 9.0; Windows NT 6.1; Trident/5.0; XBLWP7; ZuneWP7)

-1
function isIEMobile() { 
    var regExp = new RegExp("IEMobile", "i"); 
    return navigator.userAgent.match(regExp); 
} 
+4

È sempre un buon id E per aggiungere un piccolo corpo alla tua risposta per spiegare il tuo codice. E forse aggiungi un riferimento o due. – Dukeling

+0

@Dukeling, grazie per il feedback, si prenderà cura –

0

ho scritto questo is-mobile component in grado di rilevare se si sta eseguendo su un telefono Windows (controlla Windows Phone, IEMobile e WPDesktop), e altre piattaforme come bene.

Sentitevi liberi di importare e utilizzare come mostrato in questi esempi:

isMobile.Android() => true/false 
isMobile.iOS() => true/false 
isMobile.any() => true/false 
isMobile.Windows() => true/false 
isMobile.BlackBerry() => true/false 
Problemi correlati