在 Ionic App 中保存 FCM 通知数据

Posted

技术标签:

【中文标题】在 Ionic App 中保存 FCM 通知数据【英文标题】:Save FCM Notification Data in Ionic App 【发布时间】:2018-09-04 03:30:44 【问题描述】:

我可以向我的应用发送通知。 如果我的应用程序正在运行,那么它能够保存传入通知数据

如果我的应用程序已关闭并且我单击通知托盘上的通知,它会打开我的应用程序但不保存通知数据 关于在应用程序关闭时我们如何保存通知数据的任何建议? 下面是代码

    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 检查以保存消息无论如何。

【问题讨论】:

【参考方案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();

【讨论】:

以上是关于在 Ionic App 中保存 FCM 通知数据的主要内容,如果未能解决你的问题,请参考以下文章