我已经使用Firebase实现了带有自定义通知的应用。我可以使用来自Pusher,Pushtry的设备令牌接收自定义通知,但是如果我使用邮递员的FCM ID发送相同的有效载荷,则不会收到通知。
我也尝试了其他有效载荷,但只是收到默认通知,有时只对某些有效载荷发出声音,但没有获得自定义通知。
我正在使用像这样的有效载荷来进行推送和推送: (收到适当的通知)
{
"aps":{
"alert":"dasdas",
"badge":1,
"sound":"default",
"category":"CustomSamplePush",
"mutable-content":"1"
},
"urlImageString":"https://res.cloudinary.com/demo/image/upload/sample.jpg"
}
相同的有效负载不适用于Firebase
是否有适当的有效负载,是否需要对我的ios代码进行更改?
提前谢谢。
答案 0 :(得分:1)
您的有效载荷应为:
{
"to": "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
"notification": {
"body": "dasdas",
"title": "Portugal vs. Denmark",
"icon": "myicon"
},
"data": {
"Nick": "Mario",
"Room": "PortugalVSDenmark"
}
}
即使Firebase返回成功的请求,因为转发的APNS有效负载不正确,将所有数据置于aps下也不会触发iOS中的任何通知。除了正确的方法之外,还应遵循GCM或FCM有效负载建议,即既将通知消息用于通知,又将数据用于自定义键/值对。
当FCM将数据发送到APNS时,它将其转换为APNs有效负载。它在aps标签中设置了通知值,即
{
"aps" : {
"alert" : {
"title" : "Portugal vs. Denmark",
"body" : "Portugal vs. Denmark",
}
},
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
答案 1 :(得分:0)
对于使用firebase的自定义通知,有效负载应如下所示。
{
"to": "FCM ID",
"content_available":true,
"mutable_content": true,
"data": {
"message": "Offer!",
"urlImageString":"https://res.cloudinary.com/demo/image/upload/sample.jpg",
},
"notification": {
"body": "Update Your App New Version is available",
"sound": "default",
"click_action": "Your app category from notification plist"
}
}