Firebase 消息通知在 iOS 上不起作用

Gau*_*tam 1 ios cordova firebase firebase-cloud-messaging

我们使用 firebase 向 iOS 和 Android 设备发送通知。也尝试发送到本机 iOS 应用程序,但这也不起作用。通知在 Android 上运行良好,但无法到达 iOS 设备。奇怪的是 firebase 的响应是成功。同一应用程序能够从科尔多瓦网站获取通知

以下是 FCM 的请求和响应:

Request:{"data":{"title":"Test notification from server code","body":"detailContent : some test data"},"to":"foqwNQ2JATY:APA91bHZRz6L7z6q3zyItYBh0eNaMv25d0CPjzPfbT4tTRrxNrkdKYwQM2pqvB-Q7ry3AEwCs8IduuYVBz834muWXnwjvt5I7mbMPbpPCw17bbBqFG4hhNdqDIO0xRdDQir8P2hz66WE","priority":"high"}

Response:{"multicast_id":6317092041813746870,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1519618961399427%7c1174a8f9fd7ecd"}]}
Run Code Online (Sandbox Code Playgroud)

Cha*_*han 5

您的有效负载必须类似于:

{
"to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
"notification" : {
  "body" : "great match!",
  "title" : "Portugal vs. Denmark",
  "icon" : "myicon"
},
"data" : {
  "Nick" : "Mario",
  "Room" : "PortugalVSDenmark"
}}
Run Code Online (Sandbox Code Playgroud)

即使 Firebase 返回成功的请求,将所有数据放在 data 下也不会触发 iOS 中的任何通知,因为转发的 APNS 负载不正确。此外,正确的方法应该是遵循 GCM 或 FCM 有效负载建议,即使用通知消息的通知和自定义键/值对的数据。

当 FCM 将数据发送到 APNS 时,它将其转换为 APNs 负载。aps它在标签中设置通知的值,即

{
"aps" : {
    "alert" : {
        "title" : "Portugal vs. Denmark",
        "body" : "Portugal vs. Denmark",
    }
},
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"   }
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息,请参阅