使用 window.Touch 判断当前设备是否为移动设备

4
确定是否在移动设备上使用以下方法是否可行?
if(window.Touch != undefined) 
{
   //redirect to my mobile site
}

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

3个回答

3

这是我所做的,目前效果还不错:

var HAS_TOUCH = ('ontouchstart' in window);

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推荐的内容。
只有当您使用触摸设备时,才能使用。这并不意味着移动设备。对于此,请在上使用正则表达式:
if(navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/iPhone/i)){
    //you are on Android or iPhone
}

但是还有很多其他需要处理的情况,比如Windows Phone和BlackBerry,因此我建议使用检测移动设备API


0

经过广泛的搜索,我找到了一些东西。窗口触摸 在安卓上不起作用 至少有人这样说。我无法确认,因为我没有运行安卓的移动设备。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接