TouchEvent.supported
пытается создать TouchEvent
для определения поддержки сенсорного ввода. Это работает для реальных сенсорных устройств, однако не помогает при использовании Chromium DevTools: «Эмуляция сенсорного экрана». Chromium предоставляет функции Touch()
и TouchList()
для объекта окна. Я добавил проверку для context['Touch']
, которая теперь показывает supportsTouchEvent: true
. Это все еще не показатель того, активна ли функция «Эмуляция сенсорного экрана». Любые предложения приветствуются!
//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;
}
Обновление 1: дополнительная проверка функции context['Touch'] дает больше информации о том, что обработка касаний возможна. Но это ложное срабатывание из-за того, что «Эмуляция» не активна, пока не открыто окно DevTools. В качестве раздутой альтернативы: если nativeTouch, установите контроллеры/обработчики потока как для мыши, так и для сенсорного экрана.