JQuery Mobile swipe events в Android 4.2.2 не работает

Я написал мобильное веб-приложение, которое использует JQuery для мобильных swipeleft и swiperight, но они не работают на Samsung Galaxy S4 под управлением Android 4.2.2. Запуск веб-приложения в стандартном веб-браузере или в Chrome имеет такую ​​же проблему: события салфетки не обнаружены.

Ниже приведен пример того, как я пытаюсь обнаружить события, которые отлично работают на других устройствах, на которых я тестировал его, даже на устройствах Android (но не на Android 4.2.2):

$('#showImage').on("swipeleft", function (event) { if (currentScale != initialScale) return; if (currentPage < maxPage) { ++currentPage; img.src = document.getElementById("page" + zeroPad(currentPage, 2) + "url").value; } }); $('#showImage').on("swiperight", function (event) { if (currentScale != initialScale) return; if (currentPage > 1) { --currentPage; img.src = document.getElementById("page" + zeroPad(currentPage, 2) + "url").value; } }); 

Есть ли что-нибудь, что я могу сделать, по коду, чтобы захватить эти события в Android 4.2.2?

Здесь у вас две проблемы.

Сначала вызвана ошибка в JQM, которая была разрешена, но еще не реализована. https://github.com/jquery/jquery-mobile/issues/5534

В основном минимальное расстояние, измеренное событием салфетки, должно учитывать плотность пикселей устройства. Таким образом, в случае JQM следующее изменение на touch.js решит проблему:

 horizontalDistanceThreshold = window.devicePixelRatio >= 2 ? 15 : 30; verticalDistanceThreshold = window.devicePixelRatio >= 2 ? 15 : 30; 

Второй – todo с kitkat, стреляющим touchcancel вместо touchhend. Решение состоит в том, чтобы делегировать touchcancel для прикосновения.