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

Java 我如何检测我的智能设备是否可触摸?,java,javascript,ios,html,windows-phone-8,Java,Javascript,Ios,Html,Windows Phone 8,我有一个应用程序,其中一个人必须使用智能设备的触摸屏来使用控制器。所以我写了一些代码来检测智能设备是否有触摸屏,如果没有,应用程序会给出错误消息 代码如下所示: var canvas, c, container, // is this running in a touch capable environment? touchable = 'createTouch' in document, touches = []; // array of touch v

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

代码如下所示:

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);   
    }
}
对于使用Android操作系统的智能设备,代码工作正常,触摸屏被检测到。但是当我在我的Windows8手机(诺基亚lumia 920)上尝试控制器时,我收到一条错误消息:我的手机没有触摸屏


那么,我怎样才能更改代码,使我的应用程序检测到我的windows phone是可触摸的呢?

我建议试试jquery插件


如果这样做有效,您可能会从脚本中获得一些想法。

Modernizr.touch测试仅指示浏览器是否支持触摸事件,这不一定反映触摸屏设备。例如,Palm Pre/WebOS(touch)手机不支持触摸事件,因此无法通过此测试。此外,Chrome(桌面)曾经谎称它在这方面的支持,但这已经得到纠正。Modernizer还通过媒体查询测试多点触控支持,Firefox4就是这样在Windows7平板电脑上公开的

请参阅本文