iOS应用未收到来自Firebase的后台推送通知

时间:2018-11-15 22:39:50

标签: ios node.js firebase push-notification firebase-cloud-messaging

我正在尝试在我正在使用的Cordova应用程序中使用推送通知。它们可以在Android应用程序中完美运行,而在iOS应用程序处于前台时则可以完美运行,但是当应用程序在后台或终止时,我不会收到任何通知。

我启用了“推送通知”和“背景模式-远程通知”功能:

xcode capabilities

我100%确定服务器具有设备令牌(因为推送通知在前台工作,并且我可以在数据库中看到它)。

这是我使用firebase-admin node module发送推送通知的方式:

await firebase.messaging().send({
  token: userDeviceToken,
  data: {foo: 'bar'},
  notification: {
    title: 'This is a notification title',
    body: 'This is a notification body',
  },
});

我想念什么?

编辑:

如果我在收到通知后启动了应用程序或将其置于前台,则它的行为就好像收到了应用程序内通知。即使我在发送通知后等待了几分钟才启动应用程序,也会发生这种情况。

2 个答案:

答案 0 :(得分:0)

应用终止后,您将无法收到远程通知。您可能想显示一个本地通知,告诉用户该应用终止时他不再能够接收通知。

答案 1 :(得分:0)

检查前景中在应用程序中收到的有效负载结构。通常,它与Android不同。 iOS有效负载结构应为:

{
   "aps" : {
     "alert" : {
       "body" : "great match!",
       "title" : "Portugal vs. Denmark",
     },
     "badge" : 1,
   },
   "Custom_Data" : "Game level name"
 }