Firebase消息传递处理iOS上的后台自定义数据

时间:2017-09-07 15:18:49

标签: ios firebase firebase-cloud-messaging firebase-notifications

我发送给Firebase:

{
    "to" : "/topics/12344",
    "priority" : "high",
    "data" : {
      "c" : "sometext",
      "t" : "someothertext"
    },
  }

在Android上,我可以使用“数据”有效负载创建自定义通知,并访问其对象。我不必发送消息标题和正文,因为我创建了自定义文本。即使应用程序已关闭,此功能仍然有效。

在iOS上,我可以使用以下方式访问自定义数据:

func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingRemoteMessage) {
    print("Received data message: \(remoteMessage.appData)")
}

但它仅在应用程序打开时打印,而不是在关闭时打印。如果我将“通知数组”发送到Firebase,它会在应用关闭时创建通知,但我无法访问自定义有效内容。

我的问题:如何在关闭应用并创建通知时访问iOS上的自定义有效内容?

1 个答案:

答案 0 :(得分:0)

如果应用已关闭或死亡,则只能将通知传递给应用 https://firebase.google.com/docs/cloud-messaging/concept-options

在后台时,应用会在通知托盘中收到通知有效内容,并仅在用户点击通知时处理数据有效内容。

在前台时,您的应用会收到一个消息对象,其中包含两个有效负载。

 {
    "to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
    "notification" : {
      "body" : "great match!",
      "title" : "Portugal vs. Denmark",
      "icon" : "myicon"
    },
    "data" : {
      "Nick" : "Mario",
      "Room" : "PortugalVSDenmark"
    }
  }