我可以在没有通知权限的情况下使用 FCM 接收消息吗?

Posted

技术标签:

【中文标题】我可以在没有通知权限的情况下使用 FCM 接收消息吗?【英文标题】:Can i receive messages with FCM without notification permission? 【发布时间】:2019-09-05 13:42:51 【问题描述】:

我想知道我是否可以在我的 ios 应用中接收来自 FCM 的负载,即使用户不允许我的应用通知。我不想将它们显示为通知,我只想处理它们的有效负载。

后台消息是否在未经许可的情况下工作?

前台消息是否在未经许可的情况下工作?

【问题讨论】:

【参考方案1】:

Firebase Cloud Messaging APNs 接口使用 Apple 推送通知服务 (APNs) 向您的 iOS 应用发送最大 4KB 的消息,包括在后台时。

通知权限需要后台和前台工作(即使您的推送通知是无声的,即不需要显示通知)

【讨论】:

在 iOS、macOS 和 Web 上,在您的设备上接收 FCM 有效负载之前,您必须先征得用户的许可。 android 应用程序不需要请求权限。 firebase.flutter.dev/docs/messaging/usage/… 只需添加官方文档,尽管它是 Flutter 文档的 FCM,但在底层它们对于原生 iOS 也是相同的。在 Android 上,即使我在手机设置中禁用了通知,FCM 侦听器仍会被调用,只是不会在通知托盘中显示它【参考方案2】:

您仍然需要用户允许通知,稍后您可以将处理实现为静默与否,由您决定。

为了接收您需要的有效负载,它必须来自推送通知。

【讨论】:

你的答案令人困惑,你能解释一下你的答案吗?这是否意味着 FCM 仅使用需要用户许可的推送通知发送数据?

以上是关于我可以在没有通知权限的情况下使用 FCM 接收消息吗?的主要内容,如果未能解决你的问题,请参考以下文章

即使发送(消息)成功,通知也没有到达 iOS 设备

React Native 处理 FCM 消息传递的 IOS 权限

Ionic 可以在没有推送服务的情况下接收推送通知吗?

无法接收 FCM 推送通知 IOS - 目标 C

如何将FCM与Ejabberd集成?

如何在 swift (FCM) 中接收数据通知