在 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 通知数据的主要内容,如果未能解决你的问题,请参考以下文章

IONIC android FCM 通知

IONIC FCM推送通知ios,无法接收

Ionic 4 & Firebase (FCM) - 如何分组推送通知

FCM 推送通知在 android 中不起作用(使用 cordova-plugin-fcm 2.1.1 的 Ionic 项目)

ionic 3:在 android fcm.onNotification() 中,当应用程序处于后台时,点击通知时不会调用

在离子完整示例中使用 FCM for android 推送通知