チタンでAndroidをターゲットにしています。デバイスにタッチスクリーンがあるかどうかはどうすればわかりますか?
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 に答える