Сохранить данные уведомления FCM в приложении Ionic

Я могу отправлять уведомления в свое приложение. Если мое приложение запущено, оно может сохранять данные о входящих уведомлениях.

Если мое приложение закрыто, и я нажимаю на уведомление на панели уведомлений, оно открывает мое приложение, но не сохраняет данные уведомлений. Есть предложения о том, как мы можем сохранить данные уведомлений, когда приложение закрыто? ниже код

    platform.ready().then(() => {


  fcm.onNotification().subscribe( data => {
    this.con.notification_title = data.notification_title;
    this.con.notification_message = data.notification_message;
      if(localStorage.getItem('oldmsg'))
      {
        this.temparr = JSON.parse(localStorage.getItem('oldmsg')); 
        this.temparr.push({"notification_title":this.con.notification_title,"notification_message": this.con.notification_message}); 
        localStorage.setItem('oldmsg',JSON.stringify(this.temparr));
        this.presentToast("You Recieved A Message!");

      }
      else{

        this.temparr.push({"notification_title":this.con.notification_title,"notification_message": this.con.notification_message}); 
        localStorage.setItem('oldmsg',JSON.stringify(this.temparr));
        this.presentToast("You Recieved A Message!");

      }
    });

 statusBar.styleDefault();
  splashScreen.hide();

  this.storage.get('introShow').then((result) => {

    if(result){

      this.navCtrl.setRoot(LoginPage);
      this.storage.set('introShow', true);
    } else {

      this.navCtrl.setRoot(IntroPage);
      this.storage.set('introShow', true);
    }

    this.listenToLoginEvents();
  });


});

Я удалил проверку data.wasTapped, чтобы сохранить сообщение, несмотря ни на что.


person DarrenChand    schedule 26.03.2018    source источник


Ответы (1)


Надеюсь, это поможет кому-то

        this.Onesignal.startInit(this.oneSignalAppId, this.sender_id);
    this.Onesignal.inFocusDisplaying(this.Onesignal.OSInFocusDisplayOption.Notification);
    this.Onesignal.handleNotificationReceived().subscribe(// when its received
        data => {
          if (localStorage.getItem('notifications')) {
            this.temparr = JSON.parse(localStorage.getItem('notifications'));
            this.temparr.push({body: data.payload.body,
            title: data.payload.title,
            type: data.payload.additionalData.type});
            localStorage.setItem('notifications', JSON.stringify(this.temparr.reverse()));

            this.events.publish('user:noti_done', {
              user: 'done',
              time: new Date()
            });

          } else {
            this.temparr.push({body: data.payload.body,
            title: data.payload.title,
            type: data.payload.additionalData.type});
            localStorage.setItem('notifications', JSON.stringify(this.temparr));

            this.events.publish('user:noti_done', {
              user: 'done',
              time: new Date()
            });
          }
        });
    
    this.Onesignal.handleNotificationOpened().subscribe(data => {
      console.log('handleNotificationOpened');
      console.log(data);
      
    });
    this.Onesignal.endInit();
}
person DarrenChand    schedule 28.10.2020