【发布时间】:2019-04-15 20:11:55
【问题描述】:
我有一个内部应用程序,我在我的应用程序中设置了criticalAlert 选项。我已经确认,当我通过推送应用程序发送以下内容时,我能够获得关键警报以在 iOS 应用程序上工作。
问题是我们的内部服务器目前仅将通知发送到 Firebase 云消息传递,我无法配置原始推送负载以在设备上播放关键警报。
这里是the example,Apple 给出了关于 APNS 的推送应该如何看待:
这是我使用适用于该应用程序的 pushy 应用程序发送的内容:
{
"aps" : {
"content_available": true,
"priority": "high",
"alert" : "Your message Here",
"badge" : 1,
"sound": {
"critical": 1,
"name": "alert.wav",
"volume": 1.0
},
"data": {
"volume": 7,
"time_to_live": 900,
"id": 3618,
"type": "engagement",
"overrideMessage": "Testing oncall for iOS",
"case": "Test Case",
"repeatNumber": 3,
"customer": "Google"
}
}
}
这是我们发送到 FCM 的当前有效负载,它可以与自定义声音一起使用,但我们真的希望关键警报能够正常工作,因为推送是针对待命参与的:
{
"to": "firebaseToken",
"content_available": true,
"priority": "high",
"isCritical": "true",
"notification": {
"title": "Title in notification",
"body": "Body in notification",
"sound": "alert.wav",
"badge": "1",
"subtitle": "subtitle in notification"
},
"data": {
"volume": 7,
"time_to_live": 900,
"id": 3618,
"type": "engagement",
"overrideMessage": "Testing oncall for iOS",
"case": "Test Case",
"repeatNumber": 3,
"customer": "Google"
}
}
我已经尝试了很多关于发送到 FCM 的内容的组合,但都没有成功:
{
"to": "firebaseToken",
"apns": {
"headers": {
"apns-priority": "10"
},
"payload": {
"aps" : {
"sound": {
"critical": 1,
"name": "alert.wav",
"volume": 0.5
},
和
{
"aps" : {
"to": "firebaseToken",
"content_available": true,
"priority": "high",
"alert" : "Your message Here",
"badge" : 1,
"sound": {
"critical": 1,
"name": "alert.wav",
"volume": 0.5
},
和
{
"to": "firebaseToken",
"aps" : {
"sound" : {
"critical": 1,
"name": "alert.wav",
"volume": 1.0
}
},
"notification": {
"badge": "1",
和
{
"to": "firebaseToken",
"isCritical": "true",
"content_available": true,
"notification": {
"badge": "1",
"sound" : {
"critical": 1,
"name": "alert.wav",
"volume": 1.0
},
他们都不允许将声音词典传递给 FCM。
我也有the answer here,但它不能解决我的问题。因为我要求 iOS 知道这个推送通知很重要,并让操作系统而不是我的应用程序来处理它。
【问题讨论】:
-
当您说“传递给 FCM”时,您使用的是 REST API 还是 Admin SDK?如果您使用的是 REST,是否可以包含端点,如果您使用的是 Admin,是否可以包含服务器代码?
-
我无权访问服务器代码,但我目前正在使用 Postman 并将 json 有效负载发送到 fcm.googleapis.com/fcm/send 如果我可以获得正确的 json 发送到 FCM,那么我可以获得服务器侧更改为匹配。
-
您是否使用旧版 http 运行它?我们还尝试了所有可能的组合 - 它不起作用。 APNS,虽然有效。但是我们必须使用FCM
-
我们可以在下面批准 Jen 的回答,尽管我不能投赞成票,因为文档显然已经损坏,并且据说它正在使用旧的 http api。它绝对可以与管理 SDK 一起使用,顺便说一句,这很棒。使用此库运行的所有平台都可以轻松获取推送通知。
标签: ios firebase google-cloud-messaging apple-push-notifications firebase-cloud-messaging