私のアプリケーションは、インターネットサービスを使用してデータを取得して保存します。接続せずにこれらを使用しようとすると、エラーが発生する可能性があります。私はまた、接続性がないことをユーザーに示すために必要です。UWPアプリケーションでインターネットの可用性を処理するにはどうすればよいですか?
これをどのように効果的に行うことができますか?
PS:私はTemplate 10フレームワークを使用します。
私のアプリケーションは、インターネットサービスを使用してデータを取得して保存します。接続せずにこれらを使用しようとすると、エラーが発生する可能性があります。私はまた、接続性がないことをユーザーに示すために必要です。UWPアプリケーションでインターネットの可用性を処理するにはどうすればよいですか?
これをどのように効果的に行うことができますか?
PS:私はTemplate 10フレームワークを使用します。
これを実用的に処理するには、まずテンプレート10 1.1.12以降を使用するようにアップグレードする必要があります。このバージョンでは、NetworkAvailableService
を使用して、インターネット接続だけでなく、一般的なネットワークもテストできます。アプリケーションがローカルリソースにアクセスする内部アプリかインターネットリソースにアクセスする外部アプリかによって異なります。
public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary<string, object> state)
{
var net = new NetworkAvailableService();
net.AvailabilityChanged = async e =>
{
if (await net.IsNetworkAvailable())
{
// yes network
if (await net.IsInternetAvailable())
{
// yes internet
}
else
{
// no internet
}
}
else
{
// no network
}
};
}
質問のUI部分の処理は別の問題です。ビューモデルにIsConnected INPCプロパティを設定すると、UI要素の可視性が変更されます。または、あなたの視覚状態を変えるのに素晴らしいNetworkConnectionStateTrigger
を使うことができます。それは私がそれをやる方法です。確かに、それは教科書のアプローチです。
は運のベストhttps://github.com/dotMorten/WindowsStateTriggers
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState x:Name="connected">
<VisualState.StateTriggers>
<triggers:NetworkConnectionStateTrigger ConnectionState = "Connected" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="MyTextBlock.Text" Value="Internet is available" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="disconnected">
<VisualState.StateTriggers>
<triggers:NetworkConnectionStateTrigger ConnectionState = "Disconnected" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="MyTextBlock.Text" Value="No internet connection"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
から状態トリガーをゲット!
なぜdownvoteですか? –