0

私は、デスクトップからAndroidの携帯電話、Blackberryの携帯電話まで、さまざまなデバイスに展開されるWebアプリケーションを開発しています。このような異なるデバイスをサポートするためには、タッチと非タッチという2つの異なるインタフェースが存在します。ブラックベリーの携帯電話のタッチを検出する

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

'ontouchstart' in window; 

戻り値trueです。そのまま

は今まで、私はちょうど悪いとして、スニッフィングブラウザに依存していました:

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

しかし、今、私はタッチでブラックベリートーチを、サポートする必要があるので、後者はもう動作しません。 。もちろん、私はブラウザのスニッフィングのためのより正確な正規表現を試すことができますが、私はperditionの道を下っていくと感じています。

タッチイベントのサポートを検出する信頼性の高い方法がありますか。ブラックベリーデバイスでも同様に動作しますか?

答えて

0

Iは、内蔵のプロパティタッチサポートを検出するために、任意のを認識していないんだけど、あなたは2例を分離するためにデバイス名を使用することができます。

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

それについて行くのはかなり野蛮な方法ですが、それでも動作します。