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