Не удается получить координаты 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;