Identifiera nätverksanslutning
Mobila enheter använder Wi-Fi- och mobilteknik för att ansluta till Internet. Det här beroendet innebär att användarna kan förlora sin Internetanslutning när de använder ditt program. Om du inte lägger till kod för att skydda mot den här möjligheten kan din app sluta svara och ge användarna en dålig upplevelse.
I den här lektionen skyddar du ditt program genom att identifiera när användarna förlorar sin Internetanslutning. Den här informationen blir viktig när vi börjar använda REST-webbtjänster.
Varför identifiera nätverksanslutningar i mobila program?
Det är viktigt att identifiera om du har en Internetanslutning i ett mobilprogram eftersom mobila enheter ofta kan förlora sin anslutning. Detta kan bero på dålig täckning av en nätverkstjänstleverantör, eller att vara i en miljö som har begränsad eller ingen mottagning, till exempel en tunnel, djup dal eller högt berg. Det finns också olika typer av nätverksanslutningar. Om du befinner dig i en miljö som tillhandahåller WiFi-anslutning har du vanligtvis högre bandbredd än om du är beroende av mobilåtkomst. Du kanske fortfarande kan ansluta till Internet, men vissa åtgärder, till exempel strömmande videoinnehåll, kan vara långsammare (och dyra) via en mobillänk jämfört med en WiFi-anslutning.
Eftersom mobila enheter har dessa utmaningar måste du skriva kod för att skydda mot dem. Om du inte gör det och programmet försöker utföra åtgärder som använder Internet kan programmet sluta svara.
Du vill också ge en bra användarupplevelse när programmet inte kan ansluta till Internet. Om programmet slutar fungera eftersom det inte finns någon Internettjänst kan användarna bli förvirrade. Det bästa du kan göra är att ge information till dina användare. Berätta för dem att du inte har någon Internetanslutning och att programmet kanske inte fungerar helt utan den. Följande bild visar ett exempel:
I det här exemplet informerar programutvecklaren användaren om att de inte har någon internetanslutning och att de bör försöka ansluta till Wi-Fi.
Identifiera nätverksanslutning
Om du vill söka efter nätverksanslutningar i en .NET MAUI-app använder du Connectivity
klassen . Den här klassen exponerar en egenskap som heter NetworkAccess
och en händelse med namnet ConnectivityChanged
. Du kan använda dessa medlemmar för att identifiera ändringar i nätverket.
Du kommer åt egenskapen NetworkAccess
via en annan egenskap med namnet Current
. Det här är den mekanism som Connectivity
krävs för att få åtkomst till den plattformsspecifika implementeringen.
Egenskapen NetworkAccess
returnerar ett värde från NetworkAccess
uppräkningen. Uppräkningen har fem värden: ConstrainedInternet
, Internet
, Local
, None
och Unknown
. Om egenskapen NetworkAccess
returnerar värdet NetworkAccess.None
, vet du att du inte har någon anslutning till Internet och att du inte bör köra nätverkskod. Den här mekanismen är portabel mellan plattformar. Följande kod visar ett exempel:
if (Connectivity.Current.NetworkAccess == NetworkAccess.None)
{
...
}
Med ConnectivityChanged
händelsen kan du också avgöra om enheten är ansluten till Internet. Händelsen ConnectivityChanged
utlöses automatiskt när nätverksstatusen ändras. Om du till exempel börjar med en aktiv nätverksanslutning och slutligen förlorar den ConnectivityChanged
, genereras händelsen för att informera dig om ändringen. En av parametrarna som skickas ConnectivityChanged
till händelsehanteraren är ett ConnectivityChangedEventArgs
objekt. Det här objektet innehåller en egenskap som heter IsConnected
. Du kan använda egenskapen IsConnected
för att avgöra om du är ansluten till Internet. Här är ett exempel:
Connectivity.Current.ConnectivityChanged += Connectivity_ConnectivityChanged;
...
void Connectivity_ConnectivityChanged(object sender, ConnectivityChangedEventArgs e)
{
bool stillConnected = e.IsConnected;
}
Med ConnectivityChanged
händelsen kan du skriva appar som kan identifiera en ändring i nätverksstatus och smidigt justera de funktioner som är tillgängliga enligt de olika miljöerna.