【发布时间】:2020-09-26 06:51:05
【问题描述】:
我一直在寻找一种方法来检测我的 Flutter 应用是否可以访问互联网。我想使用它让应用程序选择将一些数据发送到 API(如果有互联网)或将其保存到本地数据库(如果没有互联网)。
我已经尝试了一些插件,但它们似乎都是检测网络状态而不是检查是否有互联网连接。
我试过只是简单地发送一个 ping 并以这种方式检查它,但是当我这样做时,似乎需要很长时间才能停止并返回 ping 失败。
我也在使用 DIO 库来访问 API,因此我也尝试通过该库检测它,但停止和返回也需要相当长的时间(大约 30 秒)。在这种情况下,我想我只是超时了,但这也不是我真正想要的。
有什么想法或更好的方法可以快速检测是否存在活动的互联网连接而不是网络状态?
【问题讨论】:
-
你试过connectivity插件...?
-
尝试将其发送到 API。如果失败,请将其保存在本地。任何其他策略都包括试图预测未来。
-
@srikanth7785 感谢您的提示。我已经尝试过连接,但我遇到的问题是,当我连接到 Wifi 但 Wifi 没有互联网连接时,它仍然告诉我它已连接。这是正常的,在插件的文档中它甚至这样声明:“请注意,在 Android 上,这并不能保证连接到 Internet。例如,该应用程序可能具有 wifi 访问权限,但它可能是 VPN 或酒店 WiFi,没有访问。”
-
@MarquisofLorne 好的,似乎是唯一的方法。打算试试看。谢谢!
标签: android flutter networking dio