2012-03-29 25 views
21

pueda comprobar para iPhone con este código:¿Cómo verifico el uso de Windows Phone con javascript?

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

Pero quiero apuntar Windows Phone con esta userAgent:

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

¿Hay alguna manera de hacer esto?

+0

¿Ha intentado utilizar un 'match' juego lo que desea utilizar? Si tiene y no funciona, por favor diga lo que ha intentado. –

+0

Sí lo he intentado. Pero quiero hacer coincidir una cierta versión del teléfono con Windows. – oceanen

Respuesta

42

Windows Phone ciertamente parece ser el término que desea hacer coincidir. Así que simplemente intercambie iPhone en su emparejador con ese término y listo.


Como se ha mencionado en los comentarios: buscando también para iemobile le dará una gama aún más amplia de sistemas operativos móviles de Microsoft detectados.

ej .:

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 todo el camino hasta 7.5 o también puedo especificar la versión mínima? Me gusta if (navigator.userAgent.match (/ Windows Phone <7) o algo así ... – oceanen

+0

Coincide con una expresión regular, por lo que solo puede coincidir con lo que ve. Pero dado que el número de versión está incluido en el agente de usuario, usted todavía puede usar '(navigator.userAgent.match (/ Windows Phone [1-6]/i))' para unir todas las versiones del uno al seis. – devsnd

+0

¡Oh, eso es genial! ¡Gracias! – oceanen

18

Nokia Lumia o cualquier navegador WPhone tiene escritorio y el modo de navegación móvil, envía IEMobile diferente de agente de usuario. El modo de escritorio no envía el argumento del modelo Windows Phone X.Y. Busque las etiquetas de Windows + ARM + Touch + WPDesktop y, posiblemente, el tamaño de la pantalla para adivinar el teléfono o la tableta. Es un truco que sé.

Lumia 920 WPhone 8, escritorio modo
Mozilla/5.0 (compatible; MSIE 10,0; Windows NT 6.2; Trident/6.0; ARM; Touch; WPDesktop)

Lumia 920 WPhone 8
Mozilla/5.0 (compatible; MSIE 10,0; Windows Phone 8.0; Trident/6.0; IEMobile/10,0; ARM; Touch; 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; BRAZO; Toque; NOKIA; Lumia 820)

Lumia 630 WPhone 8
Mozilla/5.0 (Windows Phone 8.1; ARM; Trident/7.0; táctil; rv: 11,0; IEMobile/11,0; NOKIA; id313-3) como Gecko

Lumia 630 WPhone 8, el modo de escritorio
Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0; Touch; rv: 11,0; WPDesktop; NOKIA; id313-3) como Gecko

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

Lumia 900
Mozilla/5.0 (compatible; MSIE 9.0; sistema operativo Windows Phone 7.5; Trident/5.0; IEMobile/9,0; NOKIA; Lumia 900)

escritorio

WP7.5 IEMobile9 modo
Mozilla/5.0 (compatible; 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

Siempre es una buena identificación ea para agregar un poco de cuerpo a su respuesta para explicar su código. Y tal vez agregue una referencia o dos. – Dukeling

+0

@Dukeling, gracias por los comentarios, se encargará –

0

de escribir este is-mobile component que puede detectar si se está ejecutando en un teléfono de Windows (Windows Phone comprueba, IEMobile y WPDesktop), y otras plataformas bien.

dude en para importar y utilizar como se muestra en estos ejemplos:

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