2015-12-24 5 views
33

Я искал всюду, как захватить вход для сенсорных панелей для ноутбуков, но я не могу найти ничего для расширений Chrome/JavaScript.Как записать вкладку сенсорной панели

Вопрос: Как я могу зафиксировать количество пальцев вниз (не щелкнуть, просто вниз и потенциально перемещаться так, как вы бы с помощью мыши), их соответствующие координаты x, y и их соответствующие события вверх, для прикосновения колодки на ноутбуке?

Разъяснения:

  • Я не заинтересован в обнаружении событий с сенсорным экраном. Просто коснитесь панели событий.
  • Можно считать, что сенсорная панель работает на 3-летних или более новых кружевах.
+1

Вы не можете. Нет такого API. –

ответ

1

Чтобы разработать такое расширение, вам нужно написать chrome native client с Windows Touch Input, чтобы это произошло.

+0

Да, технически вы правы. Не могли бы вы расширить и предоставить более подробную информацию о том, как это будет выполняться настойчиво? Aka родной exe, который будет постоянно работать в фоновом режиме, собирать события сенсорной панели и передавать любой вход обратно на хромовое расширение. –

+0

ну, у меня нет какой-либо конкретной информации, но я бы посоветовал вам взглянуть на собственные образцы SDK для клиента Google, чтобы получить представление. – Allen

4

Я не могу найти его сейчас, но я где-то читал об этой теме. Но синопсис прост: это проект/в разработке, но браузер пока не поддерживает его. Вот W3C проект: https://w3c.github.io/pointerevents/

+1

Хм, я знаю, что на Mac можно обнаружить, что один палец опущен, а затем второй палец. Существуют расширения, которые используют возможности. Возможно, какой-то альтернативный/специальный API-метод в расширении Chrome в Windows? –

+1

Ну, но было бы интересно узнать, как это работает. Но поскольку я знаю, что новые указатели являются единственной спецификацией для этого и что нет решения, которое будет работать для всех браузеров и без специальных расширений. И я предполагаю, что существует только очень ограниченное использование событий javascript, которые поддерживаются только расширениями. Для OSX есть расширение для Safari: http://smus.com/multi-touch-browser-patch/ – DaSch

+1

Хммм если [это] (http://stackoverflow.com/questions/34448257/how-to-capture- touch-pad-input # comment56695171_34476264) возможно, это может быть так, как они делают это на OSX как расширение chrome. Есть предположения? –

1

Я знаю, что you're просит решение для Chrome расширений/JavaScript, но I've искал и ничего не получить, так что я закончил с возможным VB решение, сочетающее и JavaScript.

Существует VB api для Synaptics (https://autohotkey.com/board/topic/65849-controlling-synaptics-touchpad-using-com-api/), и вы можете позвонить javascript из VB (http://www.codeproject.com/Articles/35373/VB-NET-C-and-JavaScript-communication#cjfv), это долгий путь, но это способ.

+0

VB и JavaScript, похоже, применимы только в IE. Тем не менее, есть расширение IETab для Chrome, которое пытается запустить IE и представиться в Chrome, что позволяет использовать ActiveX (используется для записи VB, который взаимодействует с JavaScript). Вы знаете способ сделать что-то подобное и выполнить внешний исполняемый файл, чтобы прочитать состояние сенсорной панели? –

+0

[Здесь] (http://stackoverflow.com/questions/2652094/start-an-external-application-from-a-google-chrome-extension) говорит что-то о [native messaging] (https://developer.chrome .com/extensions/messaging # native-messaging), который позволяет вам связывать плагин chrome с приложением. Для запуска внешнего исполняемого файла вы можете использовать плагины NPAPI, но он постепенно прекращается, [подробнее] (http://stackoverflow.com/questions/21007116/chrome-chromium-extension-run-a-executable-script- через-контекстное меню) – AlvaroSanz

+0

Я хотел бы отметить ответ как правильный для щедрости. Если бы вы могли предоставить простой образец (не стесняйтесь брать много), используя собственные сообщения и некоторый непрерывный мониторинг входа трекпада в родном приложении, я был бы более чем счастлив отметить это как правильно. –

2

Я думаю, что это невозможно сделать, используя только JavaScript. Давайте так:

Рассмотрим следующую ситуацию:

Я использую Macbook Pro 13in Retina Display, с несколькими сенсорным и мульти жест сенсорной панели.

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

Теперь представьте себе, что мы фиксируем оба события, click и dblclick, теперь скажите, какое событие будет уволено, когда я сделаю один касание одним пальцем. Это будет dblclick, и когда я сделаю краном два пальца, это будет событие click.

Другой случай: Представьте, что у меня есть инвертированная прокрутка на моем компьютере, теперь, когда я прокручу вверх, моя страница будет прокручиваться вниз. И это то, что хром/firefox не контролирует.

Вывод: Там можно варьировать число таких настроек через различные тип операционной системы, через различное количество устройств, такие как трекпады, трекбол, тачпад, мышь, волшебную мыши и т.д. Это дает мне ощущение, что там представляет собой слой между внешним оборудованием и браузером, определяющим события обжига, и этот уровень предоставляется операционной системой. Его операционная система, которая управляет событиями в соответствии с пользовательскими настройками/предустановками.

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

Один из способов захвата - это установление какой-либо связи между вашей веб-страницей браузера и операционной системой, как это предлагает @AlvaroSanz.

+0

Этот подход не сработает для простого пальца, просто перемещаясь по странице, как страница мыши. –

Смежные вопросы