Chrome: connettere app ed estensioni con applicazioni native

Di - 23 October 2013 - in
Post image for Chrome: connettere app ed estensioni con applicazioni native

Recentemente è stato annunciato che il supporto ai plugin NPAPI sarà presto deprecato in Google Chrome. Uno degli usi più comuni dei plugin NPAPI nelle applicazioni ed estensioni di Chrome era quello di connetterle con applicazioni native nello stesso computer. Con le nuove Native Messaging API è possibile fare lo stesso.

Facciamo un semplice esempio per capire meglio ciò di cui stiamo parlando. Un’applicazione nativa per la gestione delle password installata nel computer dell’utente, può connettersi ad un’estensione di Chrome per sincronizzare i dati. In precedenza questo obiettivo si raggiungeva tramite l’uso dei plugin NPAPI, ma ora è possibile farlo anche con le nuove API.

Per utilizzare le Native Messaging API, le applicazioni native devono registrare un host di messaggistica al quale le applicazioni ed estensioni di Chrome possono connettersi. Per fare questo è necessario installare un file manifest speciale che definisce un nome e un percorso al binario dell’host di messaggistica nativo, assieme ad un insieme di ID di app ed estensioni che vi si possono connettere. Le applicazioni di Chrome possono connettersi a questo usando le semplici API:

var port = chrome.extension.connectNative( "org.chromium.native_messaging_example" );

Il parametro passato a chrome.extension.connectNative() è il nome usato per identificare l’host. Quando una porta di messaggistica nativa è creata, Chrome lancia l’host in un processo separato e comunica con questo tramite gli stream input ed output standard. L’applicazione o estensione può inviare e ricevere messaggi dall’applicazione nativa in questo modo:

// Registra il gestore per i messaggi in ingresso
port.onMessage.addListener(function(msg) {
    console.log("Ricevuto " + msg);
});
// Invia un messaggio
port.postMessage({text: "Hello!"});

È anche possibile inviare un singolo messaggio senza creare una porta:

chrome.extension.sendNativeMessage(
    "org.chromium.native_messaging_example",
    {messageField: "field value"},
    function(response) {
        console.log("Risposta ricevuta" + response);
    }
);

Per maggiori dettagli su come creare e registrare host di messaggistica nativa consultate la documentazione delle API e l’applicazione d’esempio, che include anche un semplice host di messaggistica nativa.

Le Native Messaging API sono disponibili su Linux, Mac OS X e Windows a partire da Chrome 29. Per conoscere altre alternative ai plugin NPAPI, consultare la pagina wiki dedicata.

Via | Chromium Blog

Leave a Reply

Mattia Migliorini Articolo scritto da

Studente di informatica presso l'Università di Padova, web designer, amante di Linux e dell'open source in generale. Membro di Ubuntu e di 2viLUG, da gennaio 2012 è collaboratore di Engeene.

Contatta l'autore

Previous post:

Next post: