9

un pequeño problema que me ha estado molestando ..Abrir aplicación Android de notificación PUSH

He creado mi solicitud para recibir notificaciones push del Urban Airship y que todo funciona bien, pero cuando toco en una notificación en el centro de notificaciones, no pasa nada.

Deseo que mi aplicación se abra cuando un usuario toca una notificación PUSH: ¿qué puedo hacer para lograrlo?

Cualquier ayuda es como siempre muy apreciada.

Gracias

+0

¿Su proceso de solicitud está vivo en el fondo? – param

Respuesta

9

Crear una pendiente de Intención para iniciar la actividad y la puso en la notificación mediante setLatestEventInfo.

Ejemplo:

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); 

Más información se puede encontrar here

+0

¿A dónde va este código? Tengo la misma pregunta que el cartel inicial, pero no encuentro el lugar lógico para esto. Si es importante, estoy usando Pushwoosh para enviar mis notificaciones. – Magua

+0

Este código es para crear la notificación. ¿Tienes alguna clase de receptor ...? Colócalo en Recibir. – San

1

Después de uno de sus proyectos de ejemplo (https://github.com/urbanairship/android-samples/tree/master/app/src/main/java/com/urbanairship/sample), se puede extender la clase AirshipReceiver y luego reemplazar el método OnReceive. Esto hizo el truco para mí:

@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); 
    } 

} 
Cuestiones relacionadas