0

Ich benutze städtischen Luftschiff, um Push-Benachrichtigung an meine Android-Anwendung zu senden. Ich sende einen JSON-Inhalt von meinem Backend-Server als Push-InhaltUrbanairship anpassen Push-Benachrichtigung Nachricht Inhalt

Push funktioniert einwandfrei & Ich kann den Push-Inhalt bekommen. Die Push-Nachricht wird ebenfalls in der Benachrichtigungsleiste des Geräts angezeigt.

Aber das Problem ist Push-Benachrichtigung zeigt den JSON-Inhalt. Ich muss es anpassen & zeigen eine menschlich lesbare Nachricht.

Hier ist die onPushReceived Methode in meiner IntentReceiver Klasse ..

@Override 
protected void onPushReceived(Context context, PushMessage message, int notificationId) { 
    Log.i(TAG, "Received push notification. Alert: " + message.getAlert() + ". Notification ID: " + notificationId); 

    String data = message.getAlert(); 
    try { 
     JSONObject dataObj = new JSONObject(data); 

     Logger.info("Data obj " + dataObj.toString()); 

     JsonDecoders.decodePushMessage(dataObj); // method to decode the json content 

    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

    // try to build a new notification message. 
    Intent intent = new Intent(context, MainActivity.class); 
    PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 

    NotificationCompat.Builder b = new NotificationCompat.Builder(context); 

    b.setAutoCancel(true) 
      .setDefaults(Notification.DEFAULT_ALL) 
      .setWhen(System.currentTimeMillis()) 
      .setSmallIcon(R.mipmap.ic_launcher) 
      .setTicker("Ticker") 
      .setContentTitle("Title") 
      .setContentText("Lorem ipsum dolor sit amet, consectetur adipiscing elit.") 
      .setDefaults(Notification.DEFAULT_LIGHTS| Notification.DEFAULT_SOUND) 
      .setContentIntent(contentIntent) 
      .setContentInfo("some info"); 


    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
    notificationManager.notify(1, b.build()); 

} 

ich den Push-Inhalt entschlüsseln kann.

Ich habe versucht, Benachrichtigungen über NotificationManager hinzuzufügen, aber dann zeigt es zwei Benachrichtigungen in der Benachrichtigungsleiste. Ich muss den Inhalt des städtischen Luftschiffschubs außer Kraft setzen. Gibt es eine Methode oder einen Weg, dies zu tun? Ich ging durch die Dokumentation & konnte nichts finden.

Hoffnung jemand kann mir helfen ..

Dank fortschrittlicher.

Antwort

2

Urban Airship unterstützt benutzerdefinierte Benachrichtigungen, aber Sie müssen Urban Airship die Benachrichtigung veröffentlichen lassen. Sie möchten eine custom notification factory bereitstellen, anstatt eine Benachrichtigung im Empfänger zu erstellen. Sie können dies jedoch wahrscheinlich vermeiden, indem Sie JSON-Inhalt nicht als Nachrichtenwarnung senden und stattdessen die zusätzlichen Daten als Extra in der Push-Nutzlast senden.

+0

Vielen Dank. Ich denke du hast meine Frage beantwortet :) –