首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检测我的智能设备是否可触摸?

如何检测我的智能设备是否可触摸?
EN

Stack Overflow用户
提问于 2013-11-26 23:12:37
回答 2查看 164关注 0票数 0

我有一个应用程序,用户必须通过使用智能设备的触摸屏来使用控制器。所以我写了一些代码来检测智能设备是否有触摸屏,如果没有,应用程序会给出错误消息。

代码如下:

代码语言:javascript
运行
复制
var canvas,
    c,
    container,
    // is this running in a touch capable environment?
    touchable = 'createTouch' in document,
    touches = []; // array of touch vectors
var firstboot = true;
lastFrameTimeStamp = new Date().getTime();

function init() {
    if (touchable) {
        setupCanvas();
        setInterval(draw, 1000 / 24);
        canvas.addEventListener('touchstart', onTouchStart, false);
        canvas.addEventListener('touchmove', onTouchMove, false);
        canvas.addEventListener('touchend', onTouchEnd, false);
        window.onorientationchange = resizeCanvas;
        window.onresize = resizeCanvas;
    }
    else {
        setupCanvas();
        c.textAlign="center";
        c.fillStyle = '#000';
        c.font="18px Arial";
        c.fillText("Helaas, de controller is alleen beschikbaar voor toestellen met een touchscreen.",canvas.width/2,canvas.height/2);   
    }
}

对于搭载IOS安卓系统的智能设备,代码运行正常,并且可以检测到触摸屏。但当我在我的windows8手机(诺基亚Lumia920)上尝试这个控制器时,我得到了错误信息:我的手机没有触摸屏。

那么,我如何更改我的代码,以便我的应用程序检测到我的windows phone是可触摸的呢?

EN

回答 2

Stack Overflow用户

发布于 2013-11-26 23:57:15

我建议您尝试jquery插件Modernizer

如果这行得通,你可能会从这些脚本中得到一些想法。

票数 0
EN

Stack Overflow用户

发布于 2013-11-27 14:16:22

Modernizr.touch测试仅指示浏览器是否支持触摸事件,这不一定反映触摸屏设备。例如,Palm / WebOS (触摸)手机不支持触摸事件,因此无法通过此测试。此外,Chrome (台式机)过去常常在这方面的支持上撒谎,但后来被纠正了。现代还通过媒体查询来测试多点触控支持,这就是Firefox4在Windows7平板电脑上展示的方式。

请参阅本文Touch event

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20220863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档