Flutter Widget 之 package: connectivity

255 阅读1分钟

当使用手机时,一切通常都能正常运作

打开浏览器,互联网就能加载,打开一个应用程序,Dash的照片就能加载。

但是作为一个开发者,你怎么提前知道那些网络请求会不会正常运作呢?

ezgif.com-gif-maker (2).gif

Connectivity可为此带来帮助

他的核心是告诉你设备是连接到无线网络、蜂窝网络,或什么都不用

ezgif.com-gif-maker (3).gif

这个API有两种使用方式,首先是立即获取连接状态

首先构建一个新的Connectivity对象,然后等待checkConnectivity,对于可能使用的网络的结果有三种选项:无线网络、移动网络或什么都不用

var result = await Connectivity().checkConnectivity();
switch(result) {
    case ConnectivityResult.wifi:
        /* ... */
    case ConnectivityResult.mobile:
        /* ... */
    case ConnectivityResult.none:
        /* ... */
}

checkConnectivity是一个围绕平台特定代码的接口,用于检查每个特定平台的连接状态

image.png

根据用户如何使用他们的平台,连接可能会发生变化

进入检查连接性的第二种方法,一旦有了connectivity对象,就使用onConnectivityChanged来注册监听器回调,这为你提供了一个流订阅,你可以使用它来更新改变了的状态,结果将是和之前一样的三个选项之一

StreamSubscription<ConnectivityResult> _stream = _connectivity.onConnectivityChanged.listen(_updateConnectionStatus);

就这样!有了这些新知识,你将能狗知道你的应用程序有什么样的互联网连接

欲知更多关于连接和所有其他包的详情,请访问pub.dev

原文翻译自视频:视频地址