在 Flutter 中缓存离线请求?

Car*_*lla 5 flutter

在我的 Flutter 应用程序中,用户可以查看产品并对其进行评分。评论应该发布到我的后端,以便我们了解有关产品的整体统计数据和类似内容的信息。我的问题是,我如何以某种方式缓存请求,以便当用户在离线状态下(或者如果他暂时断开连接)评价产品时,他可以继续与应用程序的其他部分交互,并且当他再次在线时评论在后台发送?

Mar*_*yen 1

这可能还不是答案,因为我无法添加评论,但我也在寻找同样的问题。不过我发现有两个包很有用:

我们的想法是创建一个 Hydrated 块来存储所有待处理的请求,例如,我们调用PendingRequestsBloc. of负责检查当前的连接状态OfflineBuilder:flutter_offline

  • 如果用户在线时评分:照常发送请求,同时触发一个事件 ProcessPendingRequests来检查 .txt 文件中是否有待处理的请求PendingRequestBloc。

    • 如果有待处理的请求,也将其发送。
    • 如果没有,请跳过。
  • 如果用户在离线时评分(您询问的主要情况):触发一个事件 AddPendingRequest以将请求添加到您的水合块中。

在我看来,我们使用水合块而不是普通块,因为即使我们关闭、终止应用程序,它也可以保留其状态(其中包含待处理的请求)。

如果您不熟悉 bloc 模式,请访问https://bloclibrary.dev/获取官方文档。快乐编码!