0

デスクトップから Android モバイル、Blackberry モバイルまで、さまざまなデバイスに展開される Web アプリケーションを開発しています。このような異なるデバイスをサポートする必要があるため、タッチと非タッチの 2 つの異なるインターフェイスが存在します。

問題は、Blackberry 9300 などのタッチをサポートしていない Blackberry デバイスが、タッチ イベントをサポートしているように誤って表示されることです。すなわち、

'ontouchstart' in window;

戻りますtrue

今まで、私はブラウザのスニッフィングに頼っていました。

if (window.navigator.userAgent.match(/BlackBerry/i)) {
    doStuff();
}

しかし、今タッチである Blackberry Torch をサポートする必要があるため、後者はもう機能しません。もちろん、ブラウザのスニッフィング用にもっと正確な正規表現を試すこともできますが、破滅への道を進んでいると感じています。

Blackberry デバイスでも機能する、タッチ イベントのサポートを検出するより信頼性の高い方法はありますか?

4

1 に答える 1

0

タッチ サポートを検出するための組み込みプロパティは認識していませんが、デバイス名を使用して 2 つのケースを区別できます。

public boolean hasTouchScreen()
{
   if (DeviceInfo.getDeviceName().startsWith("95")){
      return true;
   }
   else if (DeviceInfo.getDeviceName().startsWith("93")){
      return false;
   }...//other devices
    ...
   else{
      return false;
   }
}

それはかなり未開な方法ですが、それでも機能します。

于 2012-03-12T07:01:39.377 に答える