0

我在应用程序中有网络浏览器。当 Internet 连接丢失时,我需要对 webbrowser 执行某些操作,例如显示 MessageBox 并且当 Internet 再次可用时重新连接到网站。我发现我可以使用 DeviceNetworkInformation.NetworkAvailabilityChanged 事件,但是当我测试时,事件没有触发。我尝试在导航时使用 DeviceNetworkInformation.IsNetworkAvailable,但这没有我想要的功能。我在诺基亚 Lumia 710 中进行了测试。

这是我的简单代码,我从 msdn http://msdn.microsoft.com/en-us/library/microsoft.phone.net.networkinformation.devicenetworkinformation.networkavailabilitychanged%28v=vs.92%29.aspx的示例中制作了他

DeviceNetworkInformation.NetworkAvailabilityChanged += new EventHandler(NetworkAvailabilityChanged);

    void NetworkAvailabilityChanged(object sender, NetworkNotificationEventArgs e)
    {            
       string info = string.Empty;
       bool connection = false;
       bool disco = false;

        switch (e.NotificationType)
        {                    
            case NetworkNotificationType.InterfaceConnected:                    
                    connection = true;                        
                    break;

            case NetworkNotificationType.InterfaceDisconnected:                    
                    info = "Lost Internet";      
                    disco=true;                                      
                    break;

            case NetworkNotificationType.CharacteristicUpdate:                   
                   break;                                 
            default:                   
                   break;

        }
        Dispatcher.BeginInvoke(() =>
        {
           if(disco)
            MessageBox.Show(info);

            if(connection)              
             webbrowser1.Navigate(site);                                         
        });
    }

我有疑问,我在电话中检查这些方法 IsCellularDataEnabled、IsNetworkAvailable、IsWiFiEnabled 是否返回 true。我在某处读到事件 NetworkAvailabilityChanged 仅在仅启用一种类型的网络时才起作用。这是真的?

4

1 回答 1

0

请查看此页面,它可能会对您有所帮助http://msdn.microsoft.com/en-us/library/microsoft.phone.net.networkinformation.devicenetworkinformation.networkavailabilitychanged(v=vs.92).aspx您可以获取以下信息正如它所说,与 NetworkNotificationEventArgs 参数断开连接......

于 2012-05-18T20:18:04.913 回答