2013-11-26 19 views
0

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

的代码是这样的:

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的Android智能器件代码工作正常,在检测到触摸屏。但是,当我在我的Windows 8手机(诺基亚Lumia 920)上试用控制器时,我收到了错误信息,我的手机没有触摸屏。

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

回答

0

我会建议尝试jQuery插件Modernizer

,如果这个工程ü可能得到剧本有一些想法。

0

Modernizr.touch测试仅指示浏览器是否支持触摸事件,但不一定反映触摸屏设备。例如,Palm Pre/WebOS(触摸)手机不支持触摸事件,因此无法通过此测试。此外,Chrome(桌面)曾经在此方面支持其支持,但那已经被纠正。 Modernizr还通过媒体查询测试多点触控支持,这是Firefox 4如何为Windows 7平板电脑提供的支持。

参考这篇文章 Touch event

相关问题