(Ionic) handleNotificationReceived не вызывается, если приложение убито - PullRequest
0 голосов
/ 28 марта 2019

Я работаю над ионным приложением и использую onesignal для push-уведомлений.

Проблема, с которой я сталкиваюсь, заключается в том, что handleNotifiactionRecieved() не запускается при получении push-уведомлений, когда приложение не работает.убит (что удалено из последних приложений).Хотя это работает, как и ожидалось, когда приложение работает, но в фоновом режиме (не inFocus).

код установки выглядит примерно так:

if (this.platform.is('cordova')) {
        this.oneSignal.startInit('APP_ID');
        this.oneSignal.inFocusDisplaying(this.oneSignal.OSInFocusDisplayOption.None);
        this.openOneSignalMessage();
        this.oneSignal.endInit();
      }

мой код выглядит примерно так:

openOneSignalMessage() {
this.oneSignal.handleNotificationReceived().subscribe((data) => {
      this.MsgBody = data.payload.body
      console.log('newMessageOneSignal MsgBody', this.MsgBody);
 });
}

фактический результат: handleNotificationReceived() не вызывается, когда приложение не запущено, то есть завершено.

ожидаемый результат: handleNotificationReceived() должен вызываться при каждом нажатииуведомление приходит, даже когда приложение не открыто.

Как мне каждый раз запускать метод?

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 08 июня 2019

Спасибо за указание на проблему в документах.Они были обновлены с правильной информацией:

handleNotificationReceived (метод построителя)

Устанавливает обработчик полученных уведомлений.Вызывается только в том случае, если приложение работает на переднем плане 1006 * во время получения уведомления.

Если вы хотите обрабатывать данные из завершенного состояния, обязательно используйте handleNotificationOpened метод

1 голос
/ 28 марта 2019

Я нахожу это в документе:

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

Возможно, ваше приложение не работает в фоновом режиме.

Или проблема в том, что вам нужно вызывать функцию ur после старта:

this.onesignal.startInit("YOUR_APPID")
this.onesignal.handleNotificationReceived() 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...