繁体   English   中英

为什么导航发生时连接插件网络处理程序不起作用

Why connectivity plugin network handler not working when navigation happens

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

万一网络连接没有打开以检查它是否关闭,那么我就使用了连接插件。

我在ViewModelLocator类中调用此代码

Private static async void NetworkConnectivityChanged(object sender,Plugin.Connectivity.Abstractions.ConnectivityChangedEventArgs e){}
CrossConnectivity.Current.ConnectivityChanged = NetworkConnectivityChanged;

导航后,在我的Windows应用程序中是否更改了网络连接状态…在此事件不会触发,但是如果不使用导航,我们会更改网络状态,并且它正在运行。

1 个回复

解决方法是在Winphone或UWP端实现本机网络更改处理程序 ,并停止仅在Winphone和UWP的PCL端处理网络更改。 您可以通过在处理之前检查平台来做到这一点。

使用以下代码创建一个新的Network.cs类(它检测网络连接是否发生任何变化)

 public class InternetConnectionChangedEventArgs : EventArgs

{

    public InternetConnectionChangedEventArgs(bool isConnected)

    {

        this.isConnected = isConnected;

    }



    public bool IsConnected

    {

        get { return this.isConnected; }

    }



    private bool isConnected;

}



public static class Network

{

    public static event EventHandler<InternetConnectionChangedEventArgs>

        InternetConnectionChanged;



    static Network()

    {

        NetworkInformation.NetworkStatusChanged += (s) =>

        {

            if (InternetConnectionChanged != null)

            {

                var arg = new InternetConnectionChangedEventArgs(IsConnected);

                InternetConnectionChanged(null, arg);

            }

        };

    }



    public static bool IsConnected

    {

        get

        {

            var profile = NetworkInformation.GetInternetConnectionProfile();

            var isConnected = (profile != null

                && profile.GetNetworkConnectivityLevel() ==

                NetworkConnectivityLevel.InternetAccess);

            return isConnected;

        }

    }

}

然后在UWP或WinPhone中的app.xaml.cs中,在OnLaunched事件中注册网络更改处理程序,如下所示

Network.InternetConnectionChanged += this.Network_InternetConnectionChanged;

这是事件处理程序

 private void Network_InternetConnectionChanged(object sender,InternetConnectionChangedEventArgs e)

    {
      if(e.IsConnected){
         ///code to handle when the internet connectivity is there
      }
      else{
        //code to handle when the internet connectivity is lost
      }

    }
1 多点连接当连接到临时网络时不起作用

我们正在开发一个在iOS和OSX之间使用临时连接的应用程序。 不幸的是,我们无法使用自组织网络将两个设备同时连接到对等连接中,而只能在基础设施wifi上正常工作。 我们在OS X Yosemite中检查了连接,并且在两个网络中都能正常工作。 在OS X El Capitan和更高版本上,它 ...

2 为什么安装此sublimetext插件没有任何反应?

我今天从http://www.sublimetext.com/3安装了Sublimetext3便携式版本。 它可以工作,但是当我尝试为powershell https://packagecontrol.io/installation#st3安装此软件包时,我仅在控制台中得到了它: 重新 ...

4 知道网络连接何时返回

我有一个试图成为一个好的撒玛利亚人的应用程序,基本上,当任何服务开始需要与网络交互时。 我正在检查设备是否有连接: hasConnectivity方法 当此方法返回false时,我知道我没有连接,因为用户在手机上或3g并且wifi不可用 什么是最好的方式来了解何时连接可用而 ...

5 连接插件 Stream 显示错误的网络 State

我正在向使用连接插件开发的 Flutter 应用程序添加更多网络 state 感知逻辑经过大量测试,我发现插件暴露的 stream 提供的连接结果有时不正确。 此代码包含在 BLoC 提供程序 Class 中。 诊断日志显示了该问题的一个示例: ***** _updateConnectionSt ...

7 为什么在VoltDB中发生网络分区时允许脏读?

我是首尔国立大学的博士生。 我叫Seokwon Choi。 我印象深刻的研究论文(网络分区错误分析)。 我希望在实验室研讨会上向我的实验室成员介绍这篇论文。 但是,我阅读了您的研究论文和演示文稿幻灯片。 我有一个问题。 为什么读操作在VoltDB中读取Y值? 实际上复制失败 ...

2019-03-06 02:51:22 1 49   voltdb
10 网络连接只有在更改时才会出现

我正在使用Alamofire NetworkReachabilityManager来管理我的连接,如下所示。 当我启动应用程序本身时,我收到此回调,但我不希望这个回调只有在网络连接发生变化时才需要回调。 我怎么解决这个问题? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM