Я тестирую холст HTML5 и использую Javascript для рисования на устройствах с сенсорным экраном. Хотя он работает на устройствах iOS, я не могу заставить его работать на Android. Я сузил его до того, что event.pageX не возвращает координаты, а вместо этого возвращает либо 0, либо неопределенный (в зависимости от браузера).
Я протестировал его на своем телефоне с Cyanogen 7.1 в Opera Mobile и браузере Dolphin, а также на Galaxy Tab 10.1 (Android 3.1) под управлением стандартного браузера.
Я изменил код для отображения предупреждения о событии сенсорного запуска, отображающего координаты 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(c.x, c.y, false);
}
});
У меня есть полный чертеж, работающий в iOS, но я не могу даже заставить Android регистрировать координаты, есть идеи?
ЗАКЛЮЧИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ: Я решил проблему, см. Принятый ответ.