【问题标题】:How to receive data from an api without any user interaction如何在没有任何用户交互的情况下从 api 接收数据
【发布时间】:2021-09-28 05:56:08
【问题描述】:

我正在尝试从 API 调用接收一些数据,并根据接收到的数据执行一些任务。 假设我打开了我的颤振应用程序,并且在打开状态下没有任何点击或任何交互,当我通过 API 发送内容时,我得到了一些数据或执行任何功能。

我使用 Firebase FCM 执行此类任务 - 当我通过 API 发送内容时,firebase 通知会捕获该数据并在 Flutter 应用上执行我想要的任务。

但我想不使用 Firebase。我怎样才能做到这一点。任何解决方案/建议都会很棒。谢谢!

【问题讨论】:

  • 使用 websocket 进行 2 路通信。因此,您将能够从服务器向客户端发送消息,并且客户端可以相应地采取行动,而无需用户交互。
  • 您可以使用 StreamBuilder 来监听 Firebase 数据库的变化。

标签: flutter


【解决方案1】:

你的问题有点不清楚。无论您是否想要进行一些网络调用,即使没有用户的任何交互,您都可以在 onInit 方法中调用网络。此方法在单个屏幕的最开始运行。然后根据响应执行您的任务

【讨论】:

    【解决方案2】:

    你需要流API,看看socket编程

    【讨论】:

      【解决方案3】:

      您可以为此使用网络套接字或推送器。当 web socket 与您的服务器连接时,您收到了一些数据,您可以执行您的任务。

      【讨论】:

        【解决方案4】:

        首先,让我们把 Flutter 放在一边。您的问题是从 API 中提取数据并执行特定任务,或者您的 API 应通过 API 通知应用程序。

        对于第一个问题,一个简单的数据轮询应该可以工作:当应用程序打开时,您只需启动某种计时器并定期从 API 中提取数据并执行一些操作。但是,这种方法并不完美,它会耗尽电池电量,一般来说,有更好的方法来实现相同的目的,例如使用套接字或推送通知(正如一些答案已经说明的那样)。

        对于您的第二个问题 - “或在我通过 API 发送内容时执行任何功能” - 您需要某种机制来通知您的应用程序以使其反应和处理数据。这个问题可以使用与第一个问题相同的机制来处理。

        因此,您可能需要使用某种推送通知服务(例如 OneSignal 或 Pusher,或任何其他类似服务)或 Web 套接字 (https://flutter.dev/docs/cookbook/networking/web-sockets)。

        【讨论】:

          猜你喜欢
          • 2016-03-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-09-12
          • 2021-12-03
          • 2015-12-26
          • 2016-10-07
          相关资源
          最近更新 更多