Intereting Posts
Как настроить карту Android sdk v2 для использования разных ключей для производства и разработки? Андроидная студия 2.2 макет редактора кнопка обновления Android: ViewPager застревает между видами Добавить вложенный фрагмент после просмотра родительского фрагмента Ограничение количества строк в функции ContentResolver.query () Что такое использование Android Super Class? Значение Animator android Как я могу получить текущий цвет фона панели действий текущей темы? Ionic android build Error – Не удалось найти переменную окружения ANDROID_HOME Как выбрать несколько флажков в подменю на Android? Android Matrix multiplyMM подробно Android Studio показывает, что ограничение inotify предупреждения слишком низкое Не удалось разрешить: com.github.PhilJay: MPAndroidChart: v2.1.4 Сообщение LogCat: Ресурсы служб Google Play не найдены. Проверьте конфигурацию проекта, чтобы обеспечить включение ресурсов Является ли это хорошей методикой (использование держателя данных) для устранения анонимного класса, чтобы уменьшить риск утечки памяти

Не удается получить координаты touchevents в Javascript на устройствах Android

Я тестирую холст HTML5 и использую Javascript для рисования для устройств с сенсорным экраном. Хотя я работаю на устройствах iOS, я не могу заставить его работать на Android. Я сузил его до event.pageX, не возвращая координаты, но вместо этого возвращаю 0 или не определен (на основе браузера).

Я протестировал его на своем телефоне, используя Cyanogen 7.1 в браузере Opera Mobile и Dolphin, а также на Galaxy Tab 10.1 (Android 3.1), на котором запущен стандартный браузер.

Я изменил код, чтобы показать предупреждение о событии touchstart, отображающем координаты event.pageX, event.layerX и event.clientX (я знаю, что clientX должен работать только на iOS).

canvas.addEventListener('touchstart', function(e) { if (readyToDraw){ alert("PageX: "+e.pageX+","+e.pageY+"\n LayerX: "+e.layerX+","+e.layerY+"\n + clientX: "+e.clientX+","+e.clientY); // prevent the browsers default action! e.preventDefault(); paint = true; // Get coordinates var c = getCoords(e); addClick(cx, cy, false); } }); 

У меня есть полный рисунок, работающий в iOS, но не могу даже заставить Android регистрировать координаты, любые идеи?

ЗАКЛЮЧИТЕЛЬНЫЙ РЕДАКТ: Я решил проблему, см. Принятый ответ.

Solutions Collecting From Web of "Не удается получить координаты touchevents в Javascript на устройствах Android"

ЗАКЛЮЧИТЕЛЬНЫЙ РЕДАКТ: Хорошо, я получил это, если кто-либо найдет это и имеет аналогичную проблему, вам нужно получить доступ к массиву touch в событии, и если просто используя одно касание (а не multi touch), выньте первый элемент из массива , Как показано ниже, или вам может потребоваться компенсировать это, если это неточно:

 var touch = event.touches[0]; var x = touch.pageX; var y = touch.pageY; // or taking offset into consideration var x_2 = touch.pageX - canvas.offsetLeft; var y_2 = touch.pageY - canvas.offsetTop;