2012-08-14 136 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

相關問題