5

Nel mio manifesto ho:Come posso mantenere la mia app inattiva?

"app": 
{ 
    "background": 
    { 
     "scripts": 
     [ 
      "main.js" 
     ], 
     "persistent": true 
    } 
} 

ma mostra ancora Inspect views: _generated_background_page.html (Inactive) e quando guardo la console, si è inattiva.

E ho anche un setInterval in esecuzione ogni 10 secondi. Eppure, va ancora inattivo!

Cosa devo fare per evitare che diventi inattivo?

Informazione supplementare:

ho aggiunto un allarme che spara ogni minuto e questo sembra per svegliare la mia applicazione su. (È necessario eseguire ulteriori test) Ma significa attendere un minuto dopo l'avvio di Chrome prima dell'esecuzione dell'app.

+0

Le app non possono avere pagine di sfondo persistenti, quindi in genere non è possibile. Perché vuoi che la tua app rimanga attiva? –

+0

È un aiuto per altre app e tiene traccia delle cose e le notifica quando si verificano tali eventi. In questo modo le altre app possono utilizzare tutte le funzionalità senza doverle includere autonomamente. Semplicemente ascoltano un messaggio esterno. Ma se va a dormire, non può fare notifiche "push". –

+0

Vuoi dire che ascolta chrome.runtime.onMessageExternal (o onConnectExternal)? Quando arriva un messaggio, la pagina dell'evento verrà avviata se non è già attiva. –

risposta

-3

Esegui il codice quando è necessario eseguirlo, non è necessario eseguire continuamente una pagina in background per farlo. Per esempio. utilizzare chrome.runtime.onInstalled, chrome.runtime.onStartup, chrome.app.runtime.onRestarted, ecc. per attivare il codice su tali eventi. Il Alarms API si sveglia occasionalmente, Push Messaging per essere riattivato dal proprio server o avviare una finestra se c'è un'interfaccia con cui un utente deve interagire.

L'applicazione può essere riavviata in qualsiasi momento, quindi tieni sempre il tuo stato salvato.

+0

I tre listener di eventi che hai elencato non si attivano al riavvio di Chrome (dopo essere stati completamente spenti), quindi la mia app rimane inattiva. ** Dovrei ** essere sempre in esecuzione quando Chrome è in esecuzione. E la messaggistica push non funzionerà.Questa è un'app ospitata all'interno dell'azienda e lo stato dei documenti: '" Il server Push Messaging risponde con il codice di stato HTTP 500 (errore interno del server) se l'app che chiama l'API pushMessaging non viene trovata in il Chrome Web Store."' –

+3

Mi scuso se questo sembra duro ma il tuo commento "non hai bisogno di una pagina di sfondo costantemente in esecuzione per farlo" è molto presuntivo e inutile. Non sai quali sono i requisiti sulla mia app (anche se tu? d leggi i miei commenti sopra, lo faresti.) In realtà ne ho bisogno per funzionare costantemente in background –

+0

Lavora per me Prendi l'esempio di stato della finestra da https://github.com/GoogleChrome/chrome-app-samples/ tree/master/window-state e in background.js duplicate onLaunched a chrome.runtime.onStartup.addListener (NOT chrome.app.runtime). Uscire da chrome, restart, viene visualizzata la finestra. (Ho testato su linux). funziona per te, segnala un errore: crbug.com/new –

3

Un approccio sarebbe quello di avere il proprio servizio Web host l'app helper e notificare le altre app secondo necessità. Questo sembra il modo più "cromo" (qualunque cosa significhi). Ma ciò implicherebbe un'applicazione su un computer che invia messaggi a un'app su un altro computer, il che sembra alquanto complicato.

Si potrebbe anche provare "permissions": ["background"] (reference).

Appaiono le estensioni sono permesse pagine di sfondo persistenti, mentre le app non lo sono. Puoi cambiare la tua app di supporto in un'estensione di aiuto che invia messaggi alle altre app.

Problemi correlati