События касания Javascript в веб-просмотре на Android - PullRequest
0 голосов
/ 06 июня 2018

У меня есть код JavaScript , работающий правильно.Все, что он делает, это сохраняет координаты mousedown и изменяет схему при mouseup, в зависимости от координат mousedown и mouseup.

Вместо того, чтобы заново изобретать колесо, я пытаюсь использовать его в приложении для Android, загружая его внутривеб-просмотр.

Соответствующие изменения должны изменить слушателей mousedown и up для:

            canvas.addEventListener("touchstart", saveDownCoords, false);
            canvas.addEventListener("touchend", modifySchematic, false);

, а функция вычисления координат была изменена так:

function mouseCoords(e) {
  var cellSize = e.target.getAttribute("data-lib-shelves-cell-size");
  var cellRect = e.target.getBoundingClientRect();
  return {
      //x : Math.floor((e.clientX - cellRect.left) / cellSize),
      //y : Math.floor((e.clientY - cellRect.top) / cellSize)
      x : Math.floor((e.touches[0].clientX - cellRect.left) / cellSize),
      y : Math.floor((e.touches[0].clientY - cellRect.top) / cellSize)
  };
}

Ничего не работает вообще, если я не касаюсь нескольких пальцев.Затем он делает то же, что и программа, с помощью мыши, иногда нажимая вниз от первого пальца и вверх второго пальца;иногда вверх и вниз по первому пальцу, но только если использовался второй палец, никогда, когда используется только один палец.

Я не писал сенсорный обработчик ни для веб-просмотра, ни для деятельности, внутри которой он был.проживает.

Кто-нибудь когда-либо сталкивался с таким поведением?

1 Ответ

0 голосов
/ 07 июня 2018

Моя проблема заключалась в логике JavaScript.Нельзя получить координаты касания, а только координаты последнего касания перед ним.

...