当应用程序在后台

时间:2016-12-08 15:44:24

标签: ios xcode firebase nativescript firebase-notifications

我有一个(Nativescript)iOS客户端应用,它应该能够接收Firebase发送的推送通知。它实际上在应用程序位于前端时接收数据,但正如文档所述,iOS应检测传入通知(当应用程序在后台时)并显示通知。

这最后一部分似乎不起作用。我尝试了很多,但无法弄清楚这里发生了什么。

我使用Firebase控制台发送通知。这里我的iPhone上什么都没发生,没有声音,没有徽章,什么都没有! 虽然Firebase声称一切正常但......?

有人能帮助我吗?

好的,所以我想我不是非常具体,所以让我在下面添加一些代码。

我将此代码发布到Firebase(https://fcm.googleapis.com/fcm/send)以触发推送通知:

Content-Type:application/json
Authorization:key=[MY_KEY_HERE]

{
  "to" : "[FIREBASE_DEVICE_ID_HERE]",
  "priority": "high",
  "notification" : {
    "body" : "Howto write a great body?",
    "title" : "Some title...",
    "sound" : "default"
  }
}

正如您所看到的,这是一条通知消息,而不是数据消息,因此它应该触发iOS上的弹出窗口,徽章,声音等等。 .right?

正如我之前提到的,我能够收到这个json数据,但前提是我的应用程序位于前台...所以Firebase-device-id绝对正确,也是授权密钥。

我还应该尝试什么?

2 个答案:

答案 0 :(得分:0)

也许您正在使用此类命令与Firebase断开连接

[[FIRMessaging messaging] disconnect];

您能告诉您是否可以通过计算机(没有Firebase)通过APNS发送消息吗?可以在本教程https://www.raywenderlich.com/123862/push-notifications-tutorial中的某处找到发送此类消息的示例文件。

答案 1 :(得分:0)

应用程序处于后台时不显示FCM数据消息:

On iOS, FCM stores the message and delivers it only when the app is in the foreground and has established a FCM connection.

来源:FCM Documentation

确保感知通知而不是数据消息