2015-12-24 11 views
33

Ho cercato dappertutto come catturare l'input del touchpad per i laptop ma non riesco a trovare nulla per le estensioni/JavaScript di Chrome.Come acquisire l'input del touchpad

Domanda: come posso catturare il numero di dita verso il basso (non cliccato, appena giù e, potenzialmente, in movimento, come si farebbe con un mouse), il loro x corrispondente, coordinate Y, e le loro corrispondenti su eventi, per un tocco pad su un computer portatile?

Chiarimenti:

  • io non sono interessato a rilevare gli eventi touch screen. Basta toccare gli eventi del pad .
  • Può presumere che il touch pad risieda su laptop da 3 anni o più recenti.
+1

Non è possibile. Non esiste una tale API. –

risposta

1

per sviluppare questo tipo di estensione, è necessario scrivere chrome native client con Windows Touch Input per farlo accadere.

+0

Sì, tecnicamente hai ragione. Potresti espanderti e fornire un po 'più di dettagli su come questo si realizzerebbe in modo persistente? Aka un exe nativo che sarebbe costantemente in esecuzione in background raccogliendo eventi touch pad e comunicando qualsiasi input all'estensione di Chrome. –

+0

beh, non ho alcuna informazione specifica disponibile, ma ti suggerisco di dare un'occhiata agli esempi SDK client nativi di google per avere un'idea. – Allen

4

Non riesco a trovarlo ormai, ma da qualche parte ho letto di questo argomento. Ma la sinossi è semplice: è una bozza/in sviluppo ma nessun browser lo supporta ormai. Ecco la bozza del W3C: https://w3c.github.io/pointerevents/

+1

Hmm, so che su Mac è possibile rilevare che un dito è giù e quindi tocca un secondo dito. Ci sono estensioni che utilizzano la capacità. Forse qualche metodo API alternativo/speciale all'interno di un'estensione di Chrome su Windows? –

+1

Bene, ma sarebbe interessante sapere come funziona. Ma come so il nuovo pointerevents è l'unica specifica per questo e che non esiste una soluzione che funzioni per tutti i browser e senza estensioni speciali. E credo che ci sia solo un uso molto limitato di eventi javascript che sono supportati solo da estensioni. Per OSX c'è un'estensione per Safari: http://smus.com/multi-touch-browser-patch/ – DaSch

+1

Hmmm se [questo] (http://stackoverflow.com/questions/34448257/how-to-capture- touch-pad-input # comment56695171_34476264) è possibile potrebbe essere come lo fanno su OSX come estensione chrome. qualche idea? –

1

so che tu sei per chiedere una soluzione per estensioni di Chrome/state cercando e ottenere nulla JavaScript ma Ive, così ho finito con una possibile soluzione che combina VB e JavaScript.

C'è VB api per Synaptics (https://autohotkey.com/board/topic/65849-controlling-synaptics-touchpad-using-com-api/) e si può chiamare javascript da VB (http://www.codeproject.com/Articles/35373/VB-NET-C-and-JavaScript-communication#cjfv), è un lungo cammino, ma è un modo.

+0

VB e JavaScript sembrano essere validi solo in IE. Tuttavia, esiste un'estensione IETab per Chrome che sembra attivare IE e presentarsi in Chrome che abilita ActiveX (utilizzato per scrivere VB che comunica con JavaScript). Sai un modo per fare qualcosa di simile ed eseguire un eseguibile esterno per leggere lo stato del touchpad? –

+0

[Qui] (http://stackoverflow.com/questions/2652094/start-an-external-application-from-a-google-chrome-extension) dice qualcosa su [messaggi nativi] (https://developer.chrome .com/extensions/messaging # native-messaging) che consente di comunicare un plug-in di Chrome con un'app. Per avviare un eseguibile esterno è possibile utilizzare i plugin NPAPI, ma è in fase di eliminazione, [maggiori informazioni] (http://stackoverflow.com/questions/21007116/chrome-chromium-extension-run-a-executable-script- via-the-context-menu) – AlvaroSanz

+0

Mi piacerebbe segnare una risposta corretta per la taglia. Se si potesse fornire un semplice esempio di supper (si senta libero di presumere un sacco) utilizzando la messaggistica nativa e una sorta di monitoraggio continuo dell'input del trackpad in un'applicazione nativa sarei più che felice di contrassegnarlo come corretto. –

2

Penso che non sia possibile farlo utilizzando solo JavaScript. Diamo in questo modo:

consideri la seguente situazione:

Sto usando un pro Retina Display 13in Macbook, con multi touch e multi gesture touchpad.

Ora Supponiamo che nel mio sistema operativo disponga di impostazioni gestuali che se tocco due dita, lo registro come un normale clic sinistro e quando tocco un dito, registrarlo come clic con il pulsante destro del mouse.

Ora immaginiamo di catturare entrambi gli eventi, click e dblclick, ora indica quale evento verrà generato quando eseguirò un singolo tocco con un dito. Sarà un dblclick e, quando eseguirò un tocco con due dita, verrà generato l'evento click.

Un altro caso: Immagina di avere lo scorrimento invertito attivato nel mio computer, ora quando farò scorrere verso l'alto la mia pagina scorrerà verso il basso. E questo è qualcosa che chrome/firefox non sta controllando.

Conclusione: Non ci può essere variato il numero di tali impostazioni attraverso vari tipi di sistema operativo, attraverso vario numero di dispositivi come trackpad, trackball, touchpad, il mouse, il mouse magia ecc Questo mi dà una sensazione che non ci è uno strato tra l'hardware esterno e il browser che rileva gli eventi di attivazione e questo strato è fornito dal sistema operativo. Il suo sistema operativo che manipola gli eventi in base alle impostazioni definite dall'utente/preset.

Ci possono essere dispositivi che intendono fornire e generare più eventi come dispositivo touch, al tocco attivano più eventi. Ma questo non è il caso di tutti i dispositivi. Quindi non importa se clicchi dal mouse o dalla trackball o dal touchpad o dal touch screen otterrai un evento comune che è uno click, c'è sicuramente la possibilità che altri eventi vengano lanciati ma sono dipende dal tipo di dispositivo e non dalle impostazioni effettuate nel sistema operativo.

Un modo per catturare l'evento è stabilendo una sorta di connettività tra la pagina Web del browser e il sistema operativo come suggerito da @AlvaroSanz.

+0

Questo approccio non funzionerebbe per un dito in giù semplicemente navigando intorno alla pagina come una pagina del mouse. –