如何使用javascript检查Windows Phone useragent?

oce*_*nen 22 javascript user-agent

我可以用以下代码检查iPhone:

(navigator.userAgent.match(/iPhone/i))
Run Code Online (Sandbox Code Playgroud)

但我希望使用此userAgent定位Windows Phone:

Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; 
Motorola_ES405B_19103; Windows Phone 6.5.3.5)
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

dev*_*snd 44

Windows Phone肯定似乎是你想要匹配的术语.因此,只需iPhone在您的匹配器中交换该术语,就可以了!


正如评论中所提到的:同时寻找iemobile将为您提供更广泛的检测到的微软移动操作系统.

例如:

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!')
}
Run Code Online (Sandbox Code Playgroud)


Who*_*ome 19

诺基亚Lumia或任何WPhone浏览器都有桌面和移动浏览模式,IEMobile发送不同的用户代理.桌面模式不发送Windows Phone XY模型参数.查找Windows + ARM + Touch + WPDesktop标签​​以及可能的屏幕尺寸来猜测wphone或平板电脑.我知道这是一个黑客行为.

Lumia 920 WPhone 8,桌面模式
Mozilla/5.0(兼容; MSIE 10.0; Windows NT 6.2; Trident/6.0; ARM; Touch; WPDesktop)

Lumia 920 WPhone 8
Mozilla/5.0(兼容; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch;诺基亚; Lumia 920)

Lumia 820 WPhone 8
Mozilla/5.0(兼容; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch;诺基亚; Lumia 820)

Lumia 630 WPhone 8
Mozilla/5.0(Windows Phone 8.1; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0;诺基亚; id313-3)像Gecko

Lumia 630 WPhone 8,桌面模式
Mozilla/5.0(Windows NT 6.2; ARM; Trident/7.0; Touch; rv:11.0; WPDesktop; NOKIA; id313-3)就像Gecko

Lumia 800 WPhone 7.5
Mozilla/5.0(兼容; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0;诺基亚; Lumia 800)

Lumia 900
Mozilla/5.0(兼容; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0;诺基亚; Lumia 900)

WP7.5 IEMobile9桌面模式
Mozilla/5.0(兼容; MSIE 9.0; Windows NT 6.1; Trident/5.0; XBLWP7; ZuneWP7)