2013-05-03 15 views
5

Sto lavorando su un'app Android. Ci saranno due tipi di Utenti: Amministratore e Cliente. Voglio solo fare in modo che l'amministratore pubblichi alcune notifiche in testo normale e che vengano notificate ai clienti. La domanda è: che cosa dovrei usare per trasferire le notifiche da Admin a Client. Ho letto da qualche parte che è possibile con l'aiuto di Google App Engine e Google Cloud Messaging (GCM), ma è molto complesso lavorare con Google App Engine. C'è qualche opzione migliore che posso usare?Notifica di passaggio da Amministratore a Cliente

risposta

1

Se solo, la vostra preoccupazione è che non si vuole indulgere alla programmazione lato server e ancora voglia di ricevere qualche stringa nella vostra applicazione, come notifica push, è possibile provare ed esplorare questa:

http://framework.realtime.co/messaging/#android

1

È possibile utilizzare il servizio Amazon S3. Vai qui per ulteriori informazioni: http://aws.amazon.com/s3/

+0

Non so da dove cominciare. Non ho ancora eseguito alcuna programmazione sul lato server, vorresti indicarmi da dove cominciare. –

1

Google App Engine è molto semplice se leggi il step-by-step guide.

È necessario installare maven: daini this COME e poi leggere la guida di Google e, con un po 'di taglia e incolla nel pom.xml, e 3 classi sarete in grado di scrivere qualche servizio web REST in 4 ore!

L'ho fatto qualche settimana fa e la cosa complessa era generare l'ID O-AUTH per l'autenticazione utente automatica! Alla fine sarai in grado di generare anche un sottile client Android per utilizzare il tuo servizio!

Se conosci java, tutto questo sarà semplice!

Questo è un semplice servizio web con il motore app:

@Api(
    name = "helloworld", 
    version = "v1", 
    scopes = {Constants.EMAIL_SCOPE}, 
    clientIds = {Constants.WEB_CLIENT_ID, Constants.ANDROID_CLIENT_ID, Constants.API_EXPLORER_CLIENT_ID}, 
    audiences = {Constants.ANDROID_AUDIENCE} 
) 
public class Greetings { 
    public static ArrayList<HelloGreeting> greetings = new ArrayList<HelloGreeting>(); 

    static { 
     greetings.add(new HelloGreeting("ciao world!")); 
     greetings.add(new HelloGreeting("addio world!")); 
    } 

    public HelloGreeting getGreeting(@Named("id") Integer id) { 
     return greetings.get(id); 
    } 
} 
+0

È una scelta migliore di Java? –

+0

Stai utilizzando java per l'app giusto? Quindi usalo ovunque: D Althoug puoi scrivere il tuo backend in python o php (ma non ho provato) –

+0

Ma non ho lavorato con Servlet o alcun tipo di programmazione lato server .. Dove dovrei iniziare ?? –

1

penso che la scelta migliore che hai è davvero Google Cloud Messages. Tieni presente che qualsiasi cosa tu implementi, dovrà essere molto simile ad essa, quindi perché reinventare la ruota?

Se non si desidera utilizzare questo, ci sono un paio di altre possibilità che mi vengono in mente (anche se, come ho detto, infine, che emulano GCM 's comportamento):

  • Implementazione a Socket in ascolto sul lato client. In questo modo, prima dovresti assicurarti che ogni client che si connette abbia bisogno di inviarti in qualche modo (ad esempio, una richiesta HTTP POST) e l'indirizzo IP, perché avrai bisogno di sapere dove connetterti. In questo modo, devi connetterti a ciascun dispositivo ogni volta che desideri inviare un avviso, inviare il messaggio tramite lo Socket e gestire i timeout (ad esempio, se provo a recapitare un messaggio e la connessione viene rifiutata per X volte, potrei considerarlo come il client ha disconnesso).

  • Implementazione di una "scheda" centralizzata. Con questo approccio, i client si collegano a una bacheca centralizzata (ad esempio un sito HTTP), dicono il polling ogni 30 secondi e mostrano solo i nuovi messaggi. In questo modo avresti bisogno di mantenere il controllo dei messaggi già mostrati e mostrare solo quelli nuovi. Lo svantaggio di questo approccio è che inizialmente dovrebbe essere accessibile a chiunque (anche se non sta utilizzando la tua app), ma è possibile implementare alcune misure di sicurezza aggiuntive per evitarlo (ad esempio, consentire solo i client che si sono registrati inviare un HTTP POST al server remoto), altrimenti reindirizzare a una pagina di errore o restituire un errore 430 Forbidden.

Se finalmente si vuole dare una prova di GCM (che è più facile di quanto si possa immaginare), ho scritto una risposta un tempo fa che riassume ad una guida passo-passo che cosa fare per la sua attuazione .

2

App Engine di Google è perfetto per il vostro requisito come le notifiche GCM spinta bisogno di un qualche tipo di server. Per un'alternativa puoi provare anche a esplorare Parse SDK.