Я успешно внедрил PushPlugin, и он запускает push-уведомления во всех состояниях, кроме случаев, когда приложение находится на переднем плане. Вот код, который я использую:
function onNotification(e)
{
$("#app-status-ul").append('<li>EVENT -> RECEIVED: ' + e.event + '</li>');
switch(e.event)
{
case 'registered':
if (e.regid.length > 0) {
$("#app-status-ul").append('<li>REGISTERED -> REGID: ' + e.regid + '</li>');
console.log("RegID = " + e.regid);
}
break;
case 'message':
//if this flag is set, this notification happened while we were in the foreground.
//you might want to play a sound to get the user's attention, throw up a dialog etc.
if(e.foreground){
$("#app-status-ul").append('<li>--INLINE NOTIFICATION--' + '</li>');
//if the notification contains a soundname, play it.
//navigator.notification.alert('--INLINE NOTIFICATION--');
alert("You have a new alert!: " + e.payload.message);
var my_media = new Media (../homebound.wav);
my_media.play();
} else {
//otherwise we were launched because the user touched the notification in the notification tray.
if (e.coldstart)
{
navigator.notification.alert('--COLDSTART NOTIFICATION--');
}
else
{
navigator.notification.alert('--BACKGROUND NOTIFICATION--')
}
}
$("#app-status-ul").append('<li>MESSAGE -> MSG ' + e.payload.message + '</li>');
$("#app-status-ul").append('<li>MESSAGE -> MSGCNT: ' + e.payload.msgcnt + '</li>')
$status.append('<li>MESSAGE -> TIME: ' + e.payload.timeStamp + '</li>');
break;
case 'error':
$("#app-status-ul").append('<li>ERROR -> MSG: ' + e.msg + '</li>');
break;
default:
$("#app-status-ul").append('<li>EVENT -> Unknown, an event was received and we do not know what it is</li>');
break;
}
}
Я осмотрелся и ничего не нашел для этой проблемы, исправление кажется простым, но намекает на меня, потому что у меня нет опыта работы с этим плагином. Кто-нибудь сталкивался с этой проблемой и может сообщить мне, в чем проблема, заранее спасибо.
EDIT: я отлаживал приложение с помощью отладки USB и обнаружил, что приложение получает предупреждение, но ничего не запускает, я добавил предупреждение в "if(e.foreground ){alert("Вы получили новое уведомление: " + e.payload.message);" но он все еще не срабатывает, проблема явно связана с оператором if, но я не могу понять это.
EDIT 2: я обновил вопрос, чтобы ответить на комментарий, сделанный пользователем Hana Le, я получаю предупреждение об ошибке: "Ошибка процесса: Ошибка: ReferenceError: onNotification не определен"
Где это должно быть определено, чтобы заставить его работать, и почему приложение получает и запускает уведомление при работе в фоновом режиме и когда вообще не работает?