使用window.Touch查看当前设备是否是移动设备

时间:2011-10-20 02:03:10

标签: javascript mobile

是否可以执行以下操作来确定您是否在移动设备上?

if(window.Touch != undefined) 
{
   //redirect to my mobile site
}

我想做一个小小的检查,看看它是否是移动设备。我不想仅仅为了这个简单的检查而导入modernizr库。

3 个答案:

答案 0 :(得分:3)

这就是我所做的,到目前为止它运作良好:

var HAS_TOUCH = ('ontouchstart' in window);

答案 1 :(得分:1)

我正在使用:

if(window.MSPointerEvent){
    //you are on IE10
}else if(window.PointerEvent){
    //you are on IE11
}else if(window.TouchEvent){
    //android and safari
}else{
    //don't have touch events
}

我在Android 2.3和4.4.2以及iOS 7.1上进行了测试。对于IE,我使用了Microsoft recommended

使用TouchEvent仅适用于触控设备;这并不意味着移动设备。为此,请在userAgent上使用正则表达式:

if(navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/iPhone/i)){
    //you are on Android or iPhone
}

但是还有很多其他案例要处理,例如Windows Phone和BlackBerry,所以我建议使用detect mobile API

答案 2 :(得分:0)

在广泛搜索后找到了一些东西。 window.touch doesn't work on Android至少这是有人说过的。我无法确认,因为我没有运行Android的移动设备