【发布时间】:2020-09-13 11:50:39
【问题描述】:
我正在从我的服务器发送推送通知(发送到 firebase 令牌而不是主题)。我不区分平台,服务器只是通过 RestTemplate (Spring Boot App) 发送 JSON。
如果我为 Android 准备它,它可以工作,但它不适用于 iOS。但如果我为 iOS 准备它,它不适用于 Android。
情况是:我想要通知和后台进程(它应该在任何情况下都显示通知前台/后台/已终止,并且它应该从数据负载中获取键值对)。
问题是:如果我在 JSON 中使用 notification,通知将显示在 iOS 和 Android 上,但只有 iOS 可以处理有效负载(处于前台/后台/已终止状态)。如果我删除 JSON 中的 notification 标记,那么一切正常(Android 和 iOS 接收所有状态的有效负载,但 iOS 不显示通知)。
在 Android 中,您可以构建通知客户端(像我一样),但在 iOS 中这是不可能的。
那么,我如何发送带有 firebase-token 的 FCM (JSON) 并且它是独立于平台的?两者都可以正确处理它,都接收有效负载并显示消息,并且有效负载应在每个状态下处理。
这适用于 android 并显示消息(内置客户端)但不适用于 iOS
{
"content_available": true,
"data":{
"action":"bla",
"value":"true",
"id":"111111"
},
"android":{
"priority":"high"
},
"apns":{
"headers":{
"apns-priority":"10"
}
},
"to":"<MY_FCM_TOKEN>"
}
这会显示适用于 android 和 iOS 的 FCM,但仅在 iOS 上处理有效负载
{
"notification":{
"sound":"default",
"title":"Test Title",
"body":"Message of FCM"
},
"content_available": true,
"data":{
"action":"bla",
"value":"true",
"id":"111111"
},
"android":{
"priority":"high"
},
"apns":{
"headers":{
"apns-priority":"10"
}
},
"to":"<MY_FCM_TOKEN>"
}
或者是否可以只为 iOS 声明通知标签? 或者是否可以在收到有效负载时在 iOS 客户端创建通知?
【问题讨论】:
-
您找到解决方案了吗?
-
@VadimF。不,我没有找到解决方案
标签: android ios json server firebase-cloud-messaging