无法向 Firebase 云消息传递发送 iOS CriticalAlert
Not able to send an iOS CriticalAlert to Firebase Cloud Messaging
我有一个内部应用程序,在我的应用程序中设置了 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
},
None 他们允许将声音词典传递给 FCM。
我也有 the answer here 但它不能解决我的问题。因为我需要 iOS 知道这个推送通知很重要,并且让 OS 处理它而不是我的应用程序。
在回答您的具体问题之前,我建议您尽可能考虑使用 Admin SDK 而不是 REST API。该 SDK 在 Node.js、Java、python、go 和 C# 中可用。如果您的服务器代码是用这些语言中的任何一种编写的,那么这是一种使用 FCM 处理消息发送的更简单的方法。 SDK 处理重试和其他情况,否则您必须在代码中实施。
至于您的问题,guides 中指出特定于平台的字段仅适用于 FCM v1 端点。要使用 FCM,您的端点将如下所示:
https://fcm.googleapis.com/v1/projects/[your-project-id]/messages:send
您可以在 guides 中看到这方面的示例。 Select REST 从代码片段选项卡查看示例。
请注意,您授权发送的方式与V1不同。您可以在 guide. If you have trouble with the auth part, I also wrote a blog post 中找到更多关于它的信息,因为它经常出现。
我有一个内部应用程序,在我的应用程序中设置了 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
},
None 他们允许将声音词典传递给 FCM。
我也有 the answer here 但它不能解决我的问题。因为我需要 iOS 知道这个推送通知很重要,并且让 OS 处理它而不是我的应用程序。
在回答您的具体问题之前,我建议您尽可能考虑使用 Admin SDK 而不是 REST API。该 SDK 在 Node.js、Java、python、go 和 C# 中可用。如果您的服务器代码是用这些语言中的任何一种编写的,那么这是一种使用 FCM 处理消息发送的更简单的方法。 SDK 处理重试和其他情况,否则您必须在代码中实施。
至于您的问题,guides 中指出特定于平台的字段仅适用于 FCM v1 端点。要使用 FCM,您的端点将如下所示:
https://fcm.googleapis.com/v1/projects/[your-project-id]/messages:send
您可以在 guides 中看到这方面的示例。 Select REST 从代码片段选项卡查看示例。
请注意,您授权发送的方式与V1不同。您可以在 guide. If you have trouble with the auth part, I also wrote a blog post 中找到更多关于它的信息,因为它经常出现。