9

Haben Sie ein kleines Problem, das mich bisher nervt ..Öffnen Android App von PUSH-Benachrichtigung

Ich habe meine Anwendung einrichten, um Push-Benachrichtigungen von Urban Airship zu erhalten und dass alles funktioniert gut, aber wenn ich auf eine Benachrichtigung tippen Im Benachrichtigungscenter passiert nichts.

Ich möchte, dass meine App geöffnet wird, wenn ein Benutzer auf eine PUSH-Benachrichtigung klickt - was kann ich tun, um dies zu erreichen?

Jede Hilfe wird wie immer sehr geschätzt.

Dank

+0

Ist Ihr Bewerbungsprozess im Hintergrund am Leben? – param

Antwort

9

erstellen anhängiges Intent die Aktivität und legen Sie es in Benachrichtigung über setLatestEventInfo zu starten.

Beispiel:

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

Weitere Daten können here

+0

Wohin geht dieser Code? Ich habe die gleiche Frage wie das ursprüngliche Plakat, aber ich finde den logischen Ort dafür nicht. Wenn es darauf ankommt, verwende ich Pushwoosh, um meine Benachrichtigungen zu senden. – Magua

+0

Dieser Code dient zum Erstellen der Benachrichtigung. Hast du eine Empfängerklasse ...? Legen Sie es in Empfang. – San

1

Nach einem ihrer Beispielprojekte (https://github.com/urbanairship/android-samples/tree/master/app/src/main/java/com/urbanairship/sample) gefunden werden, können Sie die AirshipReceiver Klasse erweitern und dann die OnReceive Methode außer Kraft setzen. Das hat den Trick für mich gemacht:

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

} 
Verwandte Themen