アプリにウェブブラウザがあります。インターネット接続が失われたときに webbrowser で何かをする必要があります。たとえば、MessageBox を表示し、インターネットが再び利用可能になったら Web サイトに再接続します。DeviceNetworkInformation.NetworkAvailabilityChanged イベントを使用できることがわかりましたが、テスト中にイベントが発生しません。ナビゲートするときに DeviceNetworkInformation.IsNetworkAvailable を使用しようとしましたが、これには必要な機能がありません。Nokia Lumia 710 でテストしています。
ここで私の簡単なコード、私はmsdn http://msdn.microsoft.com/en-us/library/microsoft.phone.net.networkinformation.devicenetworkinformation.networkavailabilitychanged%28v=vs.92%29.aspxの例から彼を作ります
DeviceNetworkInformation.NetworkAvailabilityChanged += 新しい 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 は、1 つのタイプのネットワークのみが有効になっている場合にのみ機能することをどこかで読みました。これは本当ですか?