FCM Firebase推送通知Android/iOS

5
我正在使用FCM在iOS和Android平台上发送通知。以下是我正在发送的有效负载:
{ 
  "to":"user_key",
  "priority":"high",
  "content_available":true,
  "mutable_content":true,
  "data":{
        "body":"test"
  }
}

阅读了Firebase文档后,通过FCM发送通知和数据负载时的行为如下:
iOS
- 如果未定义notification -> body,则不会看到横幅。
Android
- 如果仅传递data payload,则在后台接收数据。 - 如果传递notification_payload,则系统托盘将处理它。
问题是:
对于Android,我想避免传递notification_payload以便在应用程序处于后台时接收数据(这样将调用onMessageReceived())。但这样,在iOS中,我将无法接收通知。
感谢您的帮助/建议。
1个回答

1
服务器应该为IOS和Android推送请求使用不同的json结构。例如:
Android:
[data] => Array
        (
            [title] => Test
            [message] => Message
        )

IOS:

[notification] => Array
        (
            [title] => Title
            [body] => Body
            [sound] => 1
            [vibrate] => 1
        )

[data] => Array
        (
            [custom_key] => custom_value
        )

您可以根据您的任务进行编辑。

我正在使用Firebase云消息传递,无法处理。 - IrApp
抱歉,您能否澄清一下。您是在 Firebase 控制台中测试发送通知吗? - Onix
我在Android和iOS平台上都有一个项目。我正在为这两个项目实现Firebase推送通知。问题已经编辑过了。 - IrApp
DOCU: https://firebase.google.com/docs/cloud-messaging/http-server-ref?hl=zh-cn ,API: https://fcm.googleapis.com/fcm/send - IrApp
这只是一个 http/s 请求。谁会执行它? - Onix
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接