24

Ho bisogno di combinare le funzionalità disponibili solo in un'app pacchetto Chrome (accesso a syncFileSystem) e funzionalità disponibili solo in un'estensione di Chrome (iniettando uno script in un sito Web di terze parti).Comunicazione tra un'app in pacchetto di Chrome e un'estensione di Chrome?

Sembra che né un'app confezionata né un'estensione possano ottenere entrambe queste cose, quindi ora sto valutando di cercare di ottenere ciò che cerco con un'app e un'estensione in pacchetti separati comunicanti.

vedo che Chrome's documentation spiega come due estensioni possono comunicare tramite chrome.runtime.onMessageExternal.addListener e chrome.runtime.sendMessage, ma nulla di applicazioni ed estensioni comunicanti confezionati.

Qualcuno sa se questo è consentito? C'è qualche documentazione, o un esempio funzionante là fuori?

risposta

17

Sì, è possibile. L'esempio di codice nella documentazione che hai collegato funziona per qualsiasi combinazione di app ed estensione.

La documentazione estensione per chrome.runtime.sendMessage dice:

invia un singolo messaggio a onMessage listener di eventi all'interno del prolungamento (o un altro interno/app).

I messaggi funzionano allo stesso modo sia nelle estensioni che nelle app e sembrano essere completamente compatibili; usa semplicemente l'ID per l'estensione o l'app di destinazione. Se guardi i documenti per lo app version of chrome.runtime.sendMessage, vedrai che è identico alla versione dell'estensione.

+1

Sarebbe davvero bello vedere come finirai a raggruppare insieme l'app e l'estensione. Mi piacerebbe essere in grado di installarli entrambi con un clic, idealmente, ma accontentarsi di una sorta di upsell da uno dei due all'altro. E rileverebbe se l'applicazione è installata richiede che sia in modalità di autorizzazione in background? – kzahel

+2

Il link di @ mangini non funziona più, ma puoi provare: [https://github.com/GoogleChrome/chrome-app-samples/tree/master/samples/messaging](https://github.com/GoogleChrome/ cromo-app-campioni/albero/master/campioni/messaging). – falconepl

+1

@apsillers, Invece di fare in modo che l'utente installi sia l'app che l'estensione, c'è comunque la possibilità di combinarli entrambi in un'unica unità in modo che l'utente effettui solo un'azione di installazione? – Pacerier