如何在没有 Firebase 和自己的自定义后端的情况下使用 Flutter 设置推送通知

Ult*_*onn 16 messaging push-notification node.js dart flutter

我一直在用 react native 开发一个应用程序,我现在正在考虑使用 Flutter 重建应用程序。在我开始重建之前,我正在研究 Flutter 的功能,看看它是否适合我们的项目。我在推送通知的插件上有点挣扎。网上有很多关于使用 Firebase 云消息传递使用应用程序中的 Firebase 消息传递插件向 Flutter 应用程序发送推送通知的信息,但我没有找到任何关于使用您自己的自定义后端设置推送通知的好文章。

我们已经有一个自定义的 Node JS 后端,可以向苹果和谷歌推送消息系统提供推送通知,所以我不想开始依赖 Firebase 云消息传递,这只会使我们的系统复杂化。

有谁知道是否以及如何使用 Flutter 应用程序设置推送通知,但使用您自己的自定义 Node JS 后端而不使用 Firebase 云消息传递?

Par*_*ave 5

先回答问题想问一下。

  1. 你知道推送通知的整体工作原理吗?
  2. 以及后端如何通知移动设备发生了变化?

从 firebase 开始工作是这样的:

当后端向 firebase 服务器发送推送通知时,firebase 在 XMPP 服务器上发送一条消息,该服务器通过 google play 服务主动连接,苹果 APNs 服务器也是如此。

现在,当 google play 服务收到此消息时,它将包含捆绑包 ID 和用于标识要发送的应用程序的内容。这就是我们在 android 应用清单文件中注册广播的原因。想想广播不会在没有任何发送广播调用的情况下被调用,如果您没有调用该函数,那么谁会调用呢?

该部分已由 google play 服务处理以启动您的广播并让您知道您收到了哪些推送通知。

所以我的回答是不,不要使用你的后端来触发推送通知,因为你需要使用你自己的 XMPP 服务器并让你的应用程序以高优先级连接,这是目前不可能的,而不显示你正在做某事的通知背景(即至少对于 android,ios 不会在 15 分钟后留在后台,但您可以通过覆盖某些方法进行扩展,但如果苹果报告您,您将没有机会使应用程序生产准备就绪。)

因此,对于 android,无论是谷歌服务还是任何其他服务,例如说 for 和示例 azure 通知仍然需要 GCM 令牌和密钥,因此您可能需要重新考虑您目前的想法。

  • 这不是推送通知,而是 XMPP 聊天。检查 Quickblox 或 firebase xmpp 聊天服务器。不要依赖推送通知聊天,我在以前的公司犯过这个错误,而且非常可怕。有时推动有时不来。因此,请使用正确的聊天 SDK。 (2认同)