有两种方法可用于检测 Xamarin.Forms 应用程序的网络连接:
第一种,可以使用特定于平台的 API。 每个平台都有独有的 API 来检测和监视设备的网络连接变化。 这种方法非常有用,但因为此代码特定于平台,所以必须为支持的每个平台编写代码。
第二种,可以使用 Xamarin.Essentials 跨平台库。 在 Xamarin.Essentials 库中,有一个 Connectivity 类。 Connectivity 包含名为 NetworkAccess 的属性和名为 ConnectivityChanged 的事件。 这两个成员通常都可用于检测网络更改。
NetworkAccess 属性返回名为 NetworkAccess 的枚举。 该枚举有五个值:ConstrainedInternet、Internet、Local、None 和 Unknown。 如果 NetworkAccess 属性返回值 NetworkAccess.None,那么你将知道未连接到 Internet,并且不应运行网络代码。 下面是 C# 代码中的一个示例:
if (Connectivity.NetworkAccess == NetworkAccess.None)
{
...
}
ConnectivityChanged 事件还用于确定是否已连接到 Internet。 但 ConnectivityChanged 是一个事件,其在网络状态发生变化时自动调用。 例如,如果开始使用时网络连接有效,但最后丢失网络连接,则会调用 ConnectivityChanged 来通知这一更改。 ConnectivityChanged 的参数之一是 ConnectivityChangedEventArgs,其中包含名为 IsConnected 的属性。 可以使用 IsConnected 属性来确定是否连接到 Internet。 下面是 C# 代码中的一个示例:
Connectivity.ConnectivityChanged += Connectivity_ConnectivityChanged;
...
void Connectivity_ConnectivityChanged(object sender, ConnectivityChangedEventArgs e)
{
bool stillConnected = e.IsConnected;
}
更多推荐
xamarin 检测网络连接
发布评论