在 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 4 & Firebase (FCM) - 如何分组推送通知
FCM 推送通知在 android 中不起作用(使用 cordova-plugin-fcm 2.1.1 的 Ionic 项目)
ionic 3:在 android fcm.onNotification() 中,当应用程序处于后台时,点击通知时不会调用