Ionic / Cordova-App erhält keine Push-Benachrichtigung im Hintergrund
Meine Android App empfängt keine Push-Benachrichtigungen im Hintergrund und sollte lautDokumentatio.
Eine Android-Anwendung auf einem Android-Gerät muss nicht ausgeführt werden, um Nachrichten zu empfangen. Das System aktiviert die Android-Anwendung über Intent Broadcast, wenn die Nachricht eintrifft, sofern die Anwendung mit dem richtigen Broadcast-Empfänger und den entsprechenden Berechtigungen eingerichtet ist.
eim Testen verschiedener Benachrichtigungen wurde festgestellt, dass die Push-Benachrichtigungen beim Schließen empfangen werden, und zwar genau dann, wenn die Benachrichtigungen das Attribut @ enthalte"Botschaft", wenn nicht, wirft es einfach weg. (Push-Benachrichtigungen sind nur JSON-Objekte.)
Meine Benachrichtigungen enthalten alle Arten von Attributen, einschließlich "alert", "id" und "title", aber nur "message" veranlasst Android, die App zu aktivieren.
Beispielbenachrichtigung, dass funktioniert nicht:
{ event: 'message',
from: '947957531940',
collapse_key: 'do_not_collapse',
foreground: true,
payload:
{ alert: 'Mensaje de Prueba',
title: 'Titulo Mensaje de Prueba' } }
Beispielbenachrichtigung, dass works:
{ 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 oder mache ich etwas falsch in meiner App?
Meine App wurde mit Ionic und Cordova entwickelt.
PD: Entschuldigen Sie mein Englisch.
BEARBEITEN
Dies ist der Android-Push-Code im .run-Modul in app.js, wie 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){
}
}