GCM notification empfangen, aber nicht angezeigt
Meine android-App und server wurden so konfiguriert zum empfangen und senden von push-Benachrichtigungen. Meine app empfängt die Benachrichtigung, perfekt, und es zeigt sich in LogCat, ob ich eine app geöffnet ist, im hintergrund oder läuft nicht so wie es sollte. Aber, ich habe ein problem, das es zu Anzeige. Egal was ich mache, ich kann Sie nicht zeigen, bis in das notification center, oder kommen Sie als eine Warnung, vibriert das Telefon oder ein Geräusch macht.
Was bin ich? Ich bin mit dem GCM-Plugin von hier: https://github.com/marknutter/GCM-Cordova
Habe ich versuchte, Sie zu senden, um eine Benachrichtigung mit NotificationCompat, aber ich war erfolglos.
-->json von GCM an diese Funktion übergeben...
@Override
protected void onMessage(Context context, Intent intent) {
Log.d(TAG, "onMessage - context: " + context);
//Extract the payload from the message
Bundle extras = intent.getExtras();
if (extras != null) {
try
{
Log.v(ME + ":onMessage extras ", extras.getString("message"));
JSONObject json;
json = new JSONObject().put("event", "message");
//My application on my host server sends back to "EXTRAS" variables message and msgcnt
//Depending on how you build your server app you can specify what variables you want to send
json.put("message", extras.getString("message"));
json.put("msgcnt", extras.getString("msgcnt"));
Log.v(ME + ":onMessage ", json.toString());
GCMPlugin.sendJavascript( json );
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle("TEST")
.setContentText("TEST");
//Send the MESSAGE to the Javascript application
}
catch( JSONException e)
{
Log.e(ME + ":onMessage", "JSON exception");
}
}
}
- Das Ziel ist offensichtlich, um die test-Benachrichtigung angezeigt und dann Streifen die Botschaft aus der json.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist ziemlich nah, aber Sie sind nicht einen einzigen Schritt. Ihr code bereitet eine Benachrichtigung, aber nicht wirklich zeigen. Fügen Sie die folgenden Zeilen nach Ihrem
NotificationCompat.Builder
code:Die Benachrichtigungs-id ist eine beliebige Zahl, die Sie verwenden können, um das abrufen der Benachrichtigung, wenn Sie müssen, aktualisieren oder löschen Sie es später.
setContentIntent()
(müssen Sie zu Graben, ein wenig tiefer in die Android-Spezifika als Cordova hätte Sie denken). Um den Ton, den Sie aufrufen müssensetSound()
und geben Sie einen Uri, um eine sound-Datei in denres/raw
- Verzeichnis (nicht die Datei-Erweiterung in der Uri).Diesen code verwenden! Hoffe der code wird Ihnen helfen,
`