在Flutter中处理无网络连接的最佳方法是什么?

4

根据我的经验,我认为有几种处理无网络连接异常的方法。但它们都不太适合。这是我从经验中得到的全部,但并不好。在Flutter中,有没有好的处理无网络连接的想法?

我尝试过以下方法:

  1. 当出现错误时,处理异常处理
    • 当处理SocketException时,它会缓存所有网络异常,即使是关于HTTP错误或无网络连接的异常。
  2. 使用Connectivity
    • 它只假设wifi或移动数据已启用或禁用。
  3. 将Connectivity与ping或数据连接检查器包混合使用
    • 这是一个好主意,但当我发布我的应用程序时,很多用户抱怨说我的应用程序显示“没有互联网连接”,即使他们有互联网。
  4. ping谷歌
    • 如果用户来自谷歌禁止的国家,例如中国。这种方法将变得无用。

因此,我认为我们需要一个良好的设计模式或解决方案来解决这个问题。什么是处理此错误的正确方式?


1
1和2的结合可以给您带来很好的输出。 - Jitesh Mohite
我只使用选项2,它完美地运行。 - krumpli
1
Resocoder的错误处理教程请看这里:https://www.youtube.com/watch?v=NoZde-wYGA4,同时也可以参考这篇文章:https://dev.to/ashishrawat2911/handling-network-calls-and-exceptions-in-flutter-54me@Temuujin,我认为jistsm555用户的答案很好,我已经使用了选项1,它运行得非常好。@Temuujin - Abhijith
1个回答

0

一种方法是确保在启动时检查互联网连接是否可用,而无需对任何内容进行ping操作。

我自己也有点沮丧,于是写了一个非常简单的插件,利用一些Java代码来检查设备上的互联网是否可用(显然,这仅适用于Android,稍后还要添加iOS版本)。

随意查看:https://pub.dev/packages/check_inet


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接