如何在Xamarin Forms iOS中更改网络连接时收到通知

时间:2017-11-01 12:52:40

标签: ios xamarin.ios xamarin.forms reachability

我的应用程序中有一个要求,我需要显示一个图像来指示应用程序是否已连接到网络。我可以使用James Montemagno的连接插件来完成它。但我想使用它来实现它Reachability类。当我实现Reachability类时,OnChange方法永远不会触发。当我打开或关闭wifi时,OnChange永远不会被调用。有人可以指导我如何实现这个目标吗?

 public static event EventHandler ReachabilityChanged;
static void OnChange(NetworkReachabilityFlags flags)
        {
            ReachabilityChanged?.Invoke(null, EventArgs.Empty);
        }

2 个答案:

答案 0 :(得分:0)

将以下代码放入您的PCL App()

CrossConnectivity.Current.ConnectivityChanged += (object sender, Plugin.Connectivity.Abstractions.ConnectivityChangedEventArgs e) =>
{
    bool IsInternetConnected = e.IsConnected;
}

您可以使用信息中心参考this

传递连接状态

答案 1 :(得分:-1)

好的,让我解释一下如何使用Rehability.cs类

1)在您的项目中添加此文件。

https://github.com/xamarin/ios-samples/blob/master/ReachabilitySample/reachability.cs

2)更改项目名称的命名空间。

3)在ViewController中声明这些变量,如图像enter image description here

 NetworkStatus remoteHostStatus, internetStatus, localWifiStatus;

4)在ViewController中添加此方法。 TableView.ReloadData()行;将您想要更新的表格的名称放在其中。

void UpdateStatus (object sender, EventArgs e)
    {
        remoteHostStatus = Reachability.RemoteHostStatus ();
        internetStatus = Reachability.InternetConnectionStatus ();
        localWifiStatus = Reachability.LocalWifiConnectionStatus ();
        TableView.ReloadData ();
    }

5)在ViewDidLoad中添加这两行

        UpdateStatus (null, null);
        Reachability.ReachabilityChanged += UpdateStatus;

更深入了解代码下载此示例并在Visual Studio中运行应用程序。 https://developer.xamarin.com/samples/monotouch/ReachabilitySample/

此致