Реализация TOUCH (TO SCREEN)

Если вы обнаружили какие либо ошибки, недочеты и неудобства или другие незачеты в программе напишите нам об этом на этом форуме - мы бум исправлять
Ответить
akela9229
Сообщения: 2
Зарегистрирован: 04 июн 2019, 16:24

Реализация TOUCH (TO SCREEN)

Сообщение akela9229 » 04 июн 2019, 16:31

Господа. Окей, у нас бразуер на хромиуме. Мы имитируем какой-то мобильный браузер (андроидовский Mobile chrome или Mobile Safari).
Но, в этом случае, браузер должен реагировать иначе. Мышки - нет, hover события - нет, скролл-бара - нет. Как имитировать скролл пальцем? — непонятно. Если эмулировать ЛКМ, потом тянуть с зажатым ЛКМ вверх/вниз — браузер это воспринимает как выделение текста, а не скроллинг как на мобильном устройстве.
Есть у кого идеи (костыля, или может нет)?

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2200
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Реализация TOUCH (TO SCREEN)

Сообщение bigfozzy » 04 июн 2019, 18:56

скоро - сделаем

Вот будет такая функция - через которую можно будет все touch комбинации сделать :
mouse->send_touch(int id, int touch_type, int x, int y, int radiusX = 0, int radiusY = 0, float rotationAngle = 0, float pressure = 0, int modiefiers = 0, int pointerType = 0)


+ настройка поддержки Touch событий

ориентировочно к концу недели.

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2200
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Реализация TOUCH (TO SCREEN)

Сообщение bigfozzy » 05 июн 2019, 00:04

сделано:
mouse->send_touch(int id, int touch_type, int x, int y, int radiusX = 0, int radiusY = 0, float rotationAngle = 0, float pressure = 0, int modiefiers = 0, int pointerType = 0)

id : идентификатор касания - одновременно можно 16 пальцев задавать (0 .. 15)
touch_type : тип касания (Released = 0, Pressed = 1, Moved = 2, Cancelled = 3)
x : x - координата касания
y : y - координата касания
radiusX : радиус касания по X (в пискселях)
radiusY : радиус касания по Y (в пискселях)
rotationAngle : угол поворота (в радианах)
pressure : давление (от 0 до 1)
modiefiers : модификаторы клавиатуры ( None = 0, CapsLockOn = 1, ShiftDown = 2, ControlDown = 4, AltDown = 8, LeftMouseButton = 16, MiddleMouseButton = 32, RightMouseButton = 64,)
pointerType: тип устройства( Touch = 0, Mouse = 1, Pen = 2, Eraser = 3 )

akela9229
Сообщения: 2
Зарегистрирован: 04 июн 2019, 16:24

Re: Реализация TOUCH (TO SCREEN)

Сообщение akela9229 » 05 июн 2019, 14:33

Спасибо, будем пробовать, отпишусь

voronov9988
Сообщения: 5
Зарегистрирован: 06 май 2019, 16:57

Re: Реализация TOUCH (TO SCREEN)

Сообщение voronov9988 » 12 июн 2019, 19:38

Попробовали $mouse->send_touch
для теста взяли сайт гугла и пытались нажать на кнопку "Поиск в Google"
но ни одного удачного касания на клик, так и не произошло

пробовали вот так
$el = $button->get_by_name("btnK");
var_dump($mouse->send_touch(1, 0, rand($el->get_x(), $el->get_width()), rand($el->get_y(), $el->get_height()), rand(5, 10), rand(10, 20), 15, rand(0.3, 0.9), 0, 0));

Пытались перебрать разные значения touch_type и modiefiers, но это не помогло, ходя в каких то случаях на кнопке было видно событие hover, без итогового нажатия на копку, при этом var_dump всегда выдает true

Подскажите пожалуйста, что мы делаем не так и желательно добавить send_touch в мануал с подробным описанием, как эмулировать касание на клик, скролить экран и т.д.

Так же было бы хорошо добавить этот метод в классы DOM (button, div и прочие), чтоб можно было кликать по этим элементам без доп вычислений

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2200
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Реализация TOUCH (TO SCREEN)

Сообщение bigfozzy » 16 июн 2019, 21:53

спасибо, посмотрим

Ответить