2012-01-10 16 views
8

Descrizione del problema:Come catturare applicazione di disinstallare il dispositivo e lasciare server sapere su questo (iOS/Android)

Abbiamo un servizio che ha applicazioni per i principali sistemi operativi mobili. Usiamo le notifiche push. Quando l'utente esegue il login, archiviamo i suoi dati di autorizzazione del dispositivo (diciamo token) per un uso successivo nel servizio push. Il problema riguarda poche autorizzazioni di dispositivo per un utente e mantenerle correttamente valide quando l'utente disinstalla l'applicazione.

Esempio:

ho dato il mio login al sistema a poche persone, in caso di provarlo. Hanno effettuato l'accesso attraverso il mob. l'applicazione e il sistema aggiungono automaticamente alcune autorizzazioni del dispositivo nel database (token). Quindi ora abbiamo token dispositivo N per 1 utente. In modo che se inviamo notifica push tutti lo riceveranno. Ora, supponiamo che coloro che hanno installato applicazioni vogliano disinstallarlo. Senza il logout, disinstallano l'applicazione tramite Application Manager. E in questo momento non abbiamo dati validi per il dispositivo autorizzato. E se proviamo a notificarli, la notifica non verrà inviata da nessuna parte. Che è sbagliato, e il lavoro inutile per il server. Come far sapere al core che alcuni dei dati memorizzati non sono più validi?

A breve - c'è la possibilità in Android/iOS di attivare l'evento di eliminazione dell'applicazione. Se l'applicazione sta per essere eliminata, chiama il server delle chiamate per ripulire i dati nella memoria. O se l'applicazione è aperta e l'utente la disinstalla, sarebbe attivato il trigger onDestroy()? O qualche altro?

Non sono uno sviluppatore iOS, non uno sviluppatore Android, so solo un po 'del secondo e nulla del primo. Qualsiasi consiglio sarà apprezzato. Grazie in anticipo.

+0

Qualche risposta per iOS? – devdRew

+0

oh giusto, volevi sapere su quello a. non funziona esattamente allo stesso modo, ma alla fine ti verrà notificata la presenza di uinstall dell'app quando un numero sufficiente di notifiche non è riuscito. aggiornato la risposta. – Jens

risposta

2

Dipende dal servizio push in uso. Afaik, se si utilizza C2DM, l'atto di disinstallare l'applicazione lo annulla automaticamente dalla C2DM.

Edit:

Oh, e circa iOS - per quanto ne so non rappresenti un direttamente pista disinstallato le applicazioni, lo fa comunque dotati di un fallito di notifica feedback servizio che dopo una sequenza di notifiche non riuscite (segnalato dal dispositivo alla rete push) ti avviserà - consentendoti di ripulire dopo un'app disinstallata.

+0

Hai ragione, stiamo utilizzando C2DM. Grazie, capito. Una domanda su C2DM: invia notifiche push se l'applicazione è chiusa? (non in esecuzione in background)? – devdRew

+0

@devdRew: Sì.C2DM invocherà il 'BroadcastReceiver' registrato anche se nessun componente della tua app è attualmente in esecuzione. – CommonsWare

+1

Sì, invierà la notifica push come Intento trasmissione (azione = com.google.android.c2dm.intent.RECEIVE), quindi non è necessario essere in esecuzione in ogni momento. – Jens

4

Non riesco a parlare per iOS. Non puoi avere il controllo quando la tua applicazione viene disinstallata in Android.

+0

Ok, capito, ma se l'app è in esecuzione in background, e ho intenzione di disinstallarlo, sarebbe il metodo onDestroy() sparato? – devdRew

+0

@devdRew: non ci conterei. Inoltre, anche se fosse così, non si sarebbe in grado di distinguere tra una disinstallazione e qualsiasi altro scenario in cui verrebbe chiamato il tuo 'onDestroy()'. – CommonsWare

+0

Grazie. Fatto. – devdRew