2010-04-16 14 views
65

Come avviare un'applicazione esterna da un'estensione Google Chrome?Avviare un'applicazione esterna da un'estensione Google Chrome?

Quindi in pratica ho un file eseguibile che esegue il lavoro quando lo si avvia. Ho bisogno di essere in grado di avviare senza una finestra (si tratta di un'applicazione console) e passare l'URL corrente ad esso in una discussione,

+13

Se c'è un dio, Google non permetterà mai a nessuno di farlo in nessun caso. –

+0

potresti avere almeno un file exe che puoi iniziare ... senza pensare a c o C++. –

+3

@ Azeem.Butt Cosa succede se ci si trova in un ambiente aziendale e tutti gli utenti consentono esplicitamente questo tipo di azione? Sembra un flusso di lavoro molto utile per me. Quindi la messaggistica nativa (che richiede prima un'app nativa separata da installare/eseguire) sembra la strada da percorrere (vedi la risposta di jonny) – JoeCool

risposta

18

L'unico modo è possibile farlo è attraverso plug-in NPAPI: https://developer.chrome.com/extensions/npapi

+0

chrome consiglia di utilizzare lo sviluppo di plug-in MDC. in quanto tutto parla della creazione di plug-in per uno specifico tipo di mimo ... c'è qualche altro riferimento online per la creazione di plugin ... –

+16

Nota che l'NPAPI è in fase di eliminazione. Vedi: http: // StackOverflow.it/questions/19917543/execute-a-program-from-a-chrome-extension – Frederik

+2

Volevo solo sottolineare la risposta di jonny qui sotto, che è probabilmente la migliore: http://stackoverflow.com/a/19922712/110549. La messaggistica nativa è probabilmente la strada da percorrere. – JoeCool

2

C'è un'estensione per Chrome (SimpleGet), che ha un plugin per Windows e Linux in grado di eseguire un'applicazione con i parametri della riga di comando .....
http://pinel.cc/
http://code.google.com/p/simple-get/
http://www.chromeextensions.org/other/simple-get/

+1

Get semplice è un gestore di download, non è quello che stanno cercando. – joanlofe

+1

@joanlofe "che ha un plugin per Windows e Linux in grado di eseguire un'app con i parametri della riga di comando" – PAEz

+7

Chiunque guardi questo, l'estensione utilizza l'estensione NPAPI che verrà eliminata gradualmente entro la fine dell'anno. –

0

Domanda ha un buon pagerank su google, quindi per chi è alla ricerca di una risposta a questa domanda questo potrebbe essere utile.

V'è un'estensione di Google Chrome marketspace di fare esattamente questo: https://chrome.google.com/webstore/detail/hccmhjmmfdfncbfpogafcbpaebclgjcp

+4

Si noti che [risposte solo per collegamento] (http://meta.stackoverflow.com/tags/link-only-answers/info) sono scoraggiate, pertanto le risposte dovrebbero essere il punto finale di una ricerca di una soluzione (vs. ancora un altro scalo di riferimenti, che tendono a diventare stantii nel tempo). Si prega di considerare l'aggiunta di una sinossi autonoma qui, mantenendo il collegamento come riferimento. – kleopatra

+0

@kleopatra Ho fornito un contesto per il collegamento –

+0

È un'estensione "Apri con applicazione esterna", la fonte è ospitata su BitBucket (https://bitbucket.org/lck/open-with-external-application), e usa il plugin SimpleGet. Buon esempio da cui imparare. – Victor

70

Purtroppo non ho abbastanza fama di commentare la risposta di Mohamed Mansour sopra.

Google is now phasing out NPAPI for Chrome, quindi il modo migliore per farlo è utilizzare lo native messaging API. L'applicazione esterna dovrebbe registrare un host di messaggistica nativo per scambiare messaggi con l'applicazione.

+0

Che dire di PPAPI? – Pacerier

+0

In realtà penso che tu possa, usando FileIO: https://developer.chrome.com/native-client/pepper_stable –

+0

ora deprecato :) – jujule

2

Vado per ipotetici perché non posso verificare ora.

Con Apache, se si esegue uno script php sul computer locale che chiama il file eseguibile e quindi si chiama questo script tramite POST o GET tramite html/javascript?

funzionerà?

fammi sapere.

+0

Ovviamente questo funzionerebbe se il processo Apache avesse le autorizzazioni richieste, ** ma qual è il punto ** quando è necessario installare Apache e aprire le porte del server Web sul ** computer dell'utente ** .... – Pacerier

6

Non è possibile avviare comandi arbitrari, ma se gli utenti sono disposti a eseguire alcune impostazioni aggiuntive, è possibile utilizzare custom protocols.

E.g. gli utenti hanno impostato le cose in modo che i collegamenti some-app:// inizino "SomeApp", quindi in my-awesome-extension si apra una scheda che punta a some-app://some-data-the-app-wants e si sta andando!

Problemi correlati