【发布时间】:2020-09-10 15:43:45
【问题描述】:
即使应用程序在前台,我如何才能留下未读的推送消息?
我正在使用 ionic 创建一个应用程序。我使用 Firebase 云消息传递(cordova-plugin-fcm-with-dependecy-updated)的推送通知来订阅消息,并使用后端进行发送。 后端请求示例:
{
"headers": {
"Authorization": "key = blahblah",
"Content-Type": "application / json",
"project_id": "111111111111"
},
"json": {
"registration_ids": [
"token"
],
"time_to_live": 1200,
"data": {
"title": "title",
"body": "body",
"sound": "default",
"badge": 1,
"click_action": "FCM_PLUGIN_ACTIVITY"
}
}
}
我还尝试发送通知键而不是日期键。尝试添加到root
{
...
"android": {
"ttl": "1200s",
"priority": "high",
"notification": {
"click_action": "FCM_PLUGIN_ACTIVITY"
}
},
...
"apns":{
"headers":{
"apns-priority":10,
"apns-expiration": date('U') + 1200
},
"payload":{
"aps":{
"badge":1,
"category":"FCM_PLUGIN_ACTIVITY"
}
}
}
}
结果是一样的——当应用在后台时,推送是不显示在托盘中的。
如果应用程序在前台,我如何才能让推送未读,并仅在用户点击时在this.fcm.onNotification().subscribe(...) 调用我的操作?
附言我尝试使用 cordova-plugin-local-notification,但使用它会导致一些冲突 - subscribe 操作不会在 ios 中触发
【问题讨论】:
-
我建议您使用 this Cordova plugin 通过 Firebase 推送通知,因为它经常更新,包括我自己在内的许多开发人员都在生产应用程序中使用它。我可以确认这个插件在应用程序处于前台、后台和关闭时都能正常工作。
标签: android ios ionic-framework firebase-cloud-messaging cordova-plugin-fcm