9

Hai un piccolo problema che è stato bugging me ..Aperto android app dalla notifica push

ho creato la mia applicazione per ricevere le notifiche push da Urbano Dirigibile e che tutto funziona bene, ma quando si tocca su una notifica nel centro notifiche, non succede nulla.

Desidero che la mia app si apra quando un utente tocca una notifica PUSH: cosa posso fare per raggiungere questo obiettivo?

Qualsiasi aiuto è come sempre molto apprezzato.

Grazie

+0

Il processo di applicazione è vivo sullo sfondo? – param

risposta

9

Creare un intento in attesa di iniziare l'attività e metterlo in comunicazione con setLatestEventInfo.

Esempio:

Context context = getApplicationContext(); 
CharSequence contentTitle = "My notification"; 
CharSequence contentText = "Hello World!"; 
Intent notificationIntent = new Intent(this, MyClass.class); 
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); 

Maggiori informazioni si possono trovare here

+0

Dove va questo codice? Ho la stessa domanda del poster iniziale ma non trovo il posto logico per questo. Se è importante, sto usando Pushwoosh per inviare le mie notifiche. – Magua

+0

Questo codice serve per creare la notifica. Avete una classe di ricevitori ...? Mettilo su onreceive. – San

1

Seguendo uno dei loro progetti di esempio (https://github.com/urbanairship/android-samples/tree/master/app/src/main/java/com/urbanairship/sample), è possibile estendere la classe AirshipReceiver e quindi l'override del metodo OnReceive. Questo ha fatto il trucco per me:

@Override 
public void onReceive(Context context, Intent intent) { 
    super.onReceive(context, intent); 

    String action = intent.getAction(); 
    if (action.equals(PushManager.ACTION_NOTIFICATION_OPENED)) { 
     Intent launch = new Intent(Intent.ACTION_MAIN); 
     launch.setClass(UAirship.shared().getApplicationContext(), MyHome.class); 
     launch.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     launch.putExtra("doWhatever",true); 
     UAirship.shared().getApplicationContext().startActivity(launch); 
    } 

}