Sto utilizzando un servizio nella mia app cordova che genera una notifica startForeground
nel onCreate. Se l'app viene uccisa tramite scorrimento e riavviata, l'evento cordova pronto per il dispositivo non viene più attivato. Sembra che l'oggetto cordova
non sia definito quando l'app viene riavviata. Ottengo il seguente messaggio di errore:startForeground() che causa problemi con cordova
E/Web Console(19472): Uncaught TypeError: Object #<Object> has no method 'exec' at file:///android_asset/www/src/jsFile.js:31
Linea 31 e seguenti:
cordova.exec(function (r) {
if (callback) {
callback(r);
}
}, function (err) {
if (callback) {
callback(false);
}
}, "Plugin", "functionName", []);
Il problema si verifica solo se uso il startForeground
al mio servizio, se io commento questa parte del codice di fuori funziona tutto correttamente. Ho un disperato bisogno di aiuto su queste domande:
- E 'possibile ottenere manualmente il cordova?
- Come avviare il servizio con
startForeground
, ma ancora innescare il cordova dispositivo pronto dopo aver ucciso e riavviare l'applicazione
Edit:
Dopo aver fatto due progetti di esempio veloce, uno a Cordova 3.6 (la versione che sto usando per la mia app effettiva) e con Cordova 5.1, mi sono reso conto che il problema è non nella nuova versione di Cordova. Comunque io non voglio davvero di aggiornare, in quanto:
- Non toccare mai un sistema in esecuzione
- Non so che cosa potrebbe non funzionare più nella versione mai, come ho installato molti plugin nel mio app .
- Sono pigro.
Qualche idea di cosa potrebbe essere cambiato da 3.6 a 5.1 che ha risolto il bug e se potevo aggiornare il mio codice 3.6 di conseguenza?
Edit2:
Questo non è un duplicato di this question. Il callback deviceReady è stato trasmesso erroneamente in questa domanda. Questo non è il caso nella mia app, e non avrebbe senso funzionare solo quando non uso startForeground
nel mio servizio.
puoi modificare la tua domanda e fornire il codice JAVA (il codice del plugin). –
Non importa (sicuro al 99,9%), come posso chiamare qualsiasi Plugin che voglio e l'errore rimane lo stesso. –
Solo un semplice suggerimento: se hai ancora il problema (credo che tu abbia trovato una soluzione), il tuo parametro 'useCapture' è impostato su' false' alla fine dell'ascolto dell'evento: 'addEventListener ('deviceready', onDeviceReady, false)? –