Phonegap управляет уведомлением, когда приложение находится на переднем плане

Я создаю мобильное приложение, используя Cordova и PhoneGap. Я хочу отображать всплывающее окно на экране устройства, когда приходит уведомление. Есть ли для этого какой-либо плагин в Cordova.


person Sanoop KS    schedule 07.09.2017    source источник


Ответы (1)


Из https://programmingistheway.wordpress.com/2017/07/19/devextremephonegap-how-to-manage-push-notifications-with-fcm/

Регистрация 3 событий, уведомление и ошибка управляются только в том случае, если приложение открыто.

Регистрация: приложение регистрируется в службе push-уведомлений, получая уникальный идентификатор RegistrationId. Это событие полезно, если вы хотите сохранить это значение для отправки уведомлений на отдельные устройства;

Уведомление: вместо отображения классического всплывающего уведомления (в зависимости от телефона) в уведомлении о событии отображается небольшое всплывающее окно (с использованием функции DevExtreme), чтобы прочитать сообщение, если приложение открыто (если приложение закрыто, вы получите уведомление классическим способом);

Ошибка: если приложение открыто и уведомление выдает какую-либо ошибку, здесь вы можете это исправить.

Итак, событием, которым вы должны управлять, является уведомление. Это событие возникает, когда уведомление доставляется с приложением на переднем плане (то есть, когда приложение работает).

Вставьте этот код в событие deviceReady:

var push = PushNotification.init({
    android: {
    },
    ios: {
        alert: "true",
        badge: "true",
        sound: "true",
        clearBadge: "true"
    },
    windows: {}
});
push.on('registration', function (data) {
    // data.registrationId
    DevExpress.ui.notify("Device registered " + data.registrationId, "success", 3000);
});
push.on('notification', function (data) {
    // data.message,
    // data.title,
    // data.count,
    // data.sound,
    // data.image,
    // data.additionalData
    // mostra la notifica se l'app è aperta
    DevExpress.ui.notify(data.message, "info", 10000);
});
push.on('error', function (e) {
    // e.message
    // sarà da togliere, utilissimo in fase di debug
    DevExpress.ui.notify(e.message, "error", 10000);
});

и вставьте нужный код в событие уведомления. В этом случае используется DevExtreme, но если вы его не используете, вы можете просто показать алерт или найдите то, что вам нужно (пример)введите здесь описание ссылки.

person Piero Alberto    schedule 07.09.2017
comment
Спасибо, Пьеро Альберто, значит, вы говорите, что мы не можем сделать всплывающее окно при получении уведомления? Я знаю о функции «handleNotificationOpened», чтобы сделать обратный вызов открытия, и «handleNotificationReceived» работает только тогда, когда приложение находится на переднем плане. Могу ли я что-нибудь сделать с широковещательным плагином в Cordova, чтобы прослушивать системные события уведомлений. - person Sanoop KS; 07.09.2017
comment
Вы можете сделать всплывающее окно, только если приложение работает, когда оно получает уведомление - person Piero Alberto; 07.09.2017