Ionic/Cordova app nicht empfängt push-Benachrichtigung im hintergrund

Meiner Android app keine push-Benachrichtigungen in den hintergrund und es sollte nach der Dokumentation.

Android-Anwendung auf einem Android-Gerät muss nicht ausgeführt werden
um Nachrichten zu empfangen. Das system aufwecken des Android Anwendung
über Intent-broadcast, wenn die Nachricht eintrifft, solange der
Anwendung eingerichtet ist, mit der richtigen broadcast-receiver und
die Berechtigungen.

Versuchen, verschiedene Meldungen vor, dass es tut, erhält die push-Benachrichtigungen, während es geschlossen ist, wenn und nur wenn die Benachrichtigungen enthält das Attribut "Nachricht", wenn es nicht nur verwirft Sie. (Push-Benachrichtigungen werden nur JSON-Objekte).

Meine Benachrichtigungen enthalten alle Arten von Parametern, einschließlich "alert", "id" und "Titel", sondern nur "Meldung" macht Android-aufwachen die app.

Beispiel die Benachrichtigung, dass nicht funktioniert:

{ event: 'message',
  from: '947957531940',
  collapse_key: 'do_not_collapse',
  foreground: true,
  payload: 
   { alert: 'Mensaje de Prueba',
     title: 'Titulo Mensaje de Prueba' } }

Beispiel die Benachrichtigung, dass funktioniert:

{ event: 'message',
  from: '947957531940',
  message: 'Contenido del mensaje de prueba.',
  collapse_key: 'do_not_collapse',
  foreground: true,
  payload: 
   { alert: 'Mensaje de Prueba',
     title: 'Titulo Mensaje de Prueba',
     message: 'Contenido del mensaje de prueba.' } }

Ist dies ein Android-standard von design oder mache ich etwas falsch in meiner app?

Meine app wurde entwickelt, mit Ionic mit Cordova.

PD: Entschuldigen Sie mein Englisch.

EDIT:

Dies ist die Android-push code innerhalb der .run-in-Modul app.js als ng-cordova Anweisungen angeben:

if (ionic.Platform.isAndroid()){

  var androidConfig = {
    "senderID": "94*************",
    "ecb": "window.casosPush"
  };

  try{
    var pushNotification = window.plugins.pushNotification;
  } catch (ex){

  }

  //Llamada en caso de exito
  var successfn = function(result){
    //alert("Success: " + result);
  };

  //Llamada en caso de error
  var errorfn   = function(result){
    window.alert("Error: " + result);
  };

  //Llamada de casos de notificacion push
  window.casosPush = function(notification){
    switch (notification.event){
      case 'registered':
        if (notification.regid.length > 0){
          $rootScope.data.token = notification.regid;
          //alert('registration ID = ' + notification.regid);
        }
      break;

      case 'message':

        $rootScope.mensajes.unshift(notification.payload);
        $localstorage.setArray('mensajes', $rootScope.mensajes);
        alert(JSON.stringify(notification));
      break;

      case 'error':
        alert('GCM error = ' + notification.msg);
      break;

      default:
        alert('An unknown GCM event has occurred');
      break;
    }
  };
  try{

    //Llamada de registro con la plataforma GCM 
    pushNotification.register(successfn,errorfn,androidConfig);
  } catch(notification){

  }
}
  • was ist Ihre Bedeutung "in der Nähe"? "force close" in der Einstellung? Wenn ja, dann wird es nie bekommen schieben später nach, das zu tun.
  • Nein, nicht mit Gewalt geschlossen, nur nicht aktiv, wird im hintergrund derzeit nicht aktiv auf dem Bildschirm. Ich weiß sehr gut, die push-Benachrichtigungen nicht'twork wenn die app force closed.
  • Können Sie mir zeigen, Ihren code?
  • ist die standar-code von ng-cordova Beispiel, ich werde zu aktualisieren, ist die Frage.
InformationsquelleAutor David Prieto | 2015-07-03
Schreibe einen Kommentar