从 Firebase 向 Android 和 iOS 发送推送通知
Posted
技术标签:
【中文标题】从 Firebase 向 Android 和 iOS 发送推送通知【英文标题】:Send Push Notification from Firebase to Android as well as iOS 【发布时间】:2016-12-18 06:37:30 【问题描述】:我正在尝试向 android 和 ios 发送推送通知。在 Android 上,推送通知由 data 处理,而在 ios 上,payload 中需要 notification 来显示通知。
但是如果添加了通知部分并且用户在两个设备上都订阅了频道。在 Android 上,它显示 2 条由有效负载的通知部分创建的消息。
从 firebase 发送有效负载的任何特定方式。这样它就可以在两个设备上运行。
提前致谢
【问题讨论】:
Firebase 支持向 iOS 和 Android 发送相同的通知。见firebase.google.com/docs/cloud-messaging/android/… @FrankvanPuffelen:我可以向 ios 和 Android 发送通知。但我不希望 Firebase 使用系统通知托盘。通知将由数据部分创建。 需要澄清:“在 Android 上显示 2 条消息”。您是说 Android 通知抽屉 显示消息两次? 您找到问题的答案了吗? 【参考方案1】:正如 Frank 所说,Firebase 确实支持向 iOS 和 Android 发送消息。
如果您发送带有数据负载(因此通知和数据)的通知消息,Android 客户端将或者显示基于通知负载的自动生成的通知(如果应用在后台)或 传递给 onMessageReceived 回调,如果您希望应用程序在前台,您可以选择根据数据和/或通知有效负载生成通知。不会生成两个通知。
【讨论】:
在我看来,OP 说他们确实收到了两个通知。这不应该是对他们要求澄清的问题的评论,而不是答案(这似乎与OP的情况相矛盾,因此不适用于他们)? ...我认为他们的“通知”有效负载导致 Android 生成通知,然后他们有处理“数据”部分的代码(因此他们的应用程序在后台,并响应事件,当时他们以编程方式生成“本地通知”。)根据我正在阅读的内容;我自己还没有尝试过,所以寻找一个支持两个平台的好例子——在搜索和阅读一整天之后还没有找到它!如果您可以展示一些适用于两个平台的 json,那就太棒了——而且是第一次。并澄清回调做什么/不做什么。 嗯。一题。根据一些帖子,如果没有通知负载,如果您的应用已终止(因此它不在后台运行),Android 将不会做任何事情。虽然也许“自动启动”可以解决这个问题?抱歉,我不清楚:iOS 和 Android 通知键要求之间存在不兼容,因此似乎支持两者的方法是将 iOS 键放在通知部分,将 Android 键放在数据中(让应用程序处理它)。但如果这样做,Android 会认为通知部分是“不完整的”——我认为它要么不显示,要么显示效果不佳。以上是关于从 Firebase 向 Android 和 iOS 发送推送通知的主要内容,如果未能解决你的问题,请参考以下文章
从 Firebase(或其他平台)向特定终端发送 IOS 通知
如何向包含 iOS 和 Android 设备的 Firebase 中的主题发送消息
有没有办法从 firebase 控制台发送 firebase 网络推送通知
Laravel API - 使用 Firebase FCM 向 android 和 iOS 客户端应用程序发送通知
Firebase Cloud Messaging to Android 工作,但 iOS 失败。如何为 iOS 构建有效负载?