如何检测设备是否在Titanium中具有触摸屏?

时间:2012-08-14 01:38:13

标签: javascript android titanium appcelerator-mobile

我的目标是使用Titanium的Android。如何判断设备是否有触摸屏?

2 个答案:

答案 0 :(得分:1)

最简单的方法是测试触摸事件支持。如果它们受支持,则设备可能具有触摸屏。如果没有,它可能没有,或者你无论如何都不能使用它们。一个解决方案是:

var touchSupported = ('ontouchstart' in window);

但要小心,因为浏览器可能支持触摸事件,但设备可能不支持(例如,Chrome 20在没有触摸的设备中支持大量触摸事件)。

您可以让用户点击按钮,查看是否已发送触摸事件或只是单击。

答案 1 :(得分:0)

这是我提出的解决方案。这真的很愚蠢,但它确实有效。无论您在何处创建应用程序窗口,请添加以下代码:

function touchStart(){
    Titanium.App.Properties.setBool("touch", true);

    self.removeEventListener("touchstart", touchStart);
}

self.addEventListener("touchstart", touchStart);

self替换为您的窗口名称。现在,第一次检测到触摸事件时,将设置应用程序属性。

稍后,检查触摸是否存在:

var touchSupported = Titanium.App.Properties.getBool("touch", false);

如果您在模拟器上对此进行测试,即使您更改“设备”,该属性也可能会保留。所以在此之前添加此行:

Titanium.App.Properties.setBool("touch", false);