从Firebase向Android和iOS发送推送通知

4
我正在尝试向Android和iOS发送推送通知。在Android上,推送通知由data处理,而在iOS上,payload中需要notification才能显示通知。
但是,如果添加通知部分并且用户在两个设备上都订阅了该频道,则Android会显示由负载的通知部分创建的2条消息。
有没有特定的方法可以从Firebase发送有效的负载,以便它可以在两个设备上运行。
提前致谢。

Firebase 支持将相同的通知发送到 iOS 和 Android。请参阅 https://firebase.google.com/docs/cloud-messaging/android/first-message#send_a_notification_message - Frank van Puffelen
@FrankvanPuffelen:我能够向iOS和Android发送通知。但是我不想让Firebase使用系统通知栏。通知将由数据部分创建。 - coreDeviOS
需要澄清: “在Android上它显示2条消息”。您是说Android通知抽屉会将消息显示两次吗? - ToolmakerSteve
你找到了你的问题的答案吗? - Andrey Solera
1个回答

0

就像Frank所说的那样,Firebase支持向iOS和Android发送消息。

如果您发送带有数据有效负载(即通知和数据)的通知消息,则Android客户端将在后台基于通知有效负载显示自动生成的通知或者在前台传递到onMessageReceived回调函数,您可以选择根据数据和/或通知有效负载生成通知。不会生成两个通知。


您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - ToolmakerSteve
我认为他们的“通知”负载导致Android生成了一个通知,然后他们有处理“数据”部分的代码(因此他们的应用程序在后台,并响应事件,在此时他们通过编程方式生成了“本地通知”)。根据我所读到的内容;尚未尝试过这个自己,因此正在寻找支持两个平台的良好示例-在搜索和阅读了一整天之后仍未找到!!如果您可以展示一些在两个平台上都有效的JSON,那将是非常棒的-也是第一次。并澄清回调函数的作用/不起作用。 - ToolmakerSteve
嗯,有一个问题。根据一些帖子的说法,如果您的应用程序已经被终止(因此它不在后台运行),没有通知负载,Android将不会执行任何操作。虽然也许“自动启动”可以解决这个问题?抱歉,我表达得不太清楚:iOS和Android通知键要求之间存在不兼容性,因此似乎支持两者的方法是将iOS键放入通知部分,将Android键放入数据中(由应用程序处理)。但是如果这样做,Android将认为通知部分是“不完整的”-它要么不显示它,要么显示得很差,我想。 - ToolmakerSteve

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