0

チタンでAndroidをターゲットにしています。デバイスにタッチスクリーンがあるかどうかはどうすればわかりますか?

4

2 に答える 2

1

最も簡単な方法は、タッチ イベントのサポートをテストすることです。サポートされている場合は、デバイスにタッチ スクリーンが搭載されている可能性があります。そうでない場合は、おそらく使用できないか、とにかく使用できません。1つの解決策は次のとおりです。

var touchSupported = ('ontouchstart' in window);

ただし、ブラウザがタッチ イベントをサポートしていても、デバイスがサポートしていない可能性があるので注意してください (たとえば、Chrome 20 は、タッチを備えていないデバイスで多くのタッチ イベントをサポートしています)。

ユーザーにボタンをクリックしてもらい、タッチ イベントがディスパッチされたのか、それともクリックだけなのかを確認できる場合があります。

于 2012-08-14T04:14:00.287 に答える
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);
于 2012-08-14T16:14:12.120 に答える