1

TouchEvent.supportedTouchEventタッチ サポートを決定するために を作成しようとします。これは実際のタッチ デバイスでは機能しますが、Chromium DevTools の「Emulate Touch Screen」を使用する場合は役に立ちません。Chromium は関数Touch()TouchList()ウィンドウ オブジェクトを公開します。context['Touch']現在表示されているチェックを追加しましたsupportsTouchEvent: true。「Emulate Touch Screen」がアクティブかどうかの指標にはなりません。どんな提案でも大歓迎です!

//bool get supportsTouchEvents =>TouchEvent.supported;
bool get supportsTouchEvents {
  bool bIsTouchSupported = TouchEvent.supported;
  if (bIsTouchSupported == false) {
     //Get the browser's native window and check for Touch function
     JsObject nativeTouch = context['Touch'];
     bIsTouchSupported = (nativeTouch is JsObject);
     //Check Chromium DevTools "Emulate Touch Screen"
  }
  return bIsTouchSupported;
}

Update-1: context['Touch'] 関数の追加チェックにより、タッチ処理が可能であるというより多くの洞察が得られます。ただし、DevTools ウィンドウが開かれるまで「エミュレーション」がアクティブにならないため、これは誤検知です。肥大化した代替手段として: nativeTouch の場合、マウスとタッチの両方のストリーム コントローラー/ハンドラーをインストールします。

4

1 に答える 1