【问题标题】:How do I check Windows Phone useragent with javascript?如何使用 javascript 检查 Windows Phone 用户代理?
【发布时间】:2017-06-01 16:16:35
【问题描述】:

我可以使用此代码检查 iPhone:

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

但我想用这个 userAgent 来定位 Windows Phone:

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

有没有办法做到这一点?

【问题讨论】:

  • 您是否尝试过使用与您想使用的匹配的match?如果你有但它不起作用,请说出你尝试过的。
  • 是的,我试过了。但是我想匹配某个版本的Windows phone。

标签: javascript user-agent


【解决方案1】:

Windows Phone 显然是您想要匹配的术语。因此,只需在匹配器中将 iPhone 与该术语交换即可!


如 cmets 中所述:同时查找 iemobile 将为您提供更广泛的检测到的 Microsoft 手机操作系统。

例如:

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!')
}

【讨论】:

  • 这会一直到 7.5 还是我也可以指定最小版本?像 if(navigator.userAgent.match(/Windows Phone
  • 它使用正则表达式匹配,所以只能匹配你看到的。但是由于用户代理中包含版本号,您仍然可以使用(navigator.userAgent.match(/Windows Phone [1-6]/i)) 匹配从一到六的所有版本。
  • 如果您寻找 iemobile,它也会尝试使其与 windows mobile 和 ce 版本兼容。
  • 感谢您的评论,我已更新我的答案以包含您的建议。
  • windows phone 用户代理:-->(兼容;MSIE 10.0;Windows NT 6.2;Trident/6.0;ARM;Touch;WPDesktop)
【解决方案2】:

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

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;NOKIA;Lumia 920)

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

Lumia 630 WPhone 8
Mozilla/5.0 (Windows Phone 8.1; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; 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;NOKIA;Lumia 800)

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

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

【讨论】:

    【解决方案3】:

    Working Fiddle for Windows Phone IE

    if(navigator.userAgent.match(/iemobile/i)) 
    {                                       
        alert('IE is Issue Explorer');
    }
    

    【讨论】:

      【解决方案4】:
      function isIEMobile() {
          var regExp = new RegExp("IEMobile", "i");
          return navigator.userAgent.match(regExp);
      }
      

      【讨论】:

      • 在你的答案中添加一个小正文来解释你的代码总是一个好主意。也许添加一两个参考。
      猜你喜欢
      • 2015-02-13
      • 1970-01-01
      • 2012-12-20
      • 2015-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-24
      • 1970-01-01
      相关资源
      最近更新 更多