2012-08-14 94 views

回答

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); 
1

最简单的方法是测试触摸事件支持。如果它们得到支持,那么该设备可能具有触摸屏。如果没有,它可能不会或者你无法使用它们。一个解决方案是:

var touchSupported = ('ontouchstart' in window); 

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

您或许可以让用户点击一个按钮并查看触发事件是发送还是点击。

+0

不幸的是,这并没有奏效。我应该提到Titanium不使用“标准”事件名称。无论如何,谢谢你。 – 2012-08-14 16:08:12

+0

“让用户点击按钮”的想法如何? – RobG 2012-08-15 03:25:57

+0

我确实考虑过这个问题,但我找到了一种透明地做到这一点的方法(我的回答)。 – 2012-08-15 15:10:31

相关问题