Erkennen der Netzwerkkonnektivität
Mobile Geräte verwenden WLAN und Mobilfunktechnologien, um eine Verbindung mit dem Internet herzustellen. Diese Abhängigkeit bedeutet, dass Ihre Benutzer ihre Internetverbindung bei der Verwendung Ihrer Anwendung verlieren können. Wenn Sie keinen Code hinzufügen, um sich vor dieser Möglichkeit zu schützen, reagiert Ihre App möglicherweise nicht mehr und bietet eine schlechte Benutzererfahrung.
In dieser Einheit schützen Sie Ihre Anwendung, indem Sie erkennen, wann Ihre Benutzer die Internetverbindung verlieren. Diese Informationen werden wichtig, wenn wir mit der Nutzung von REST-Webdiensten beginnen.
Warum sollte die Netzwerkkonnektivität für mobile Anwendungen erkannt werden?
Die Erkennung, ob eine Internetverbindung für eine mobile Anwendung besteht, ist wichtig, da mobile Geräte häufig ihre Verbindung verlieren. Dies kann auf eine schlechte Netzabdeckung durch den Netzbetreiber oder auf eine Umgebung mit eingeschränktem oder fehlendem Empfang zurückzuführen sein, z. B. ein Tunnel, ein tiefes Tal oder ein hohes Gebirge. Es gibt außerdem verschiedene Arten von Netzwerkkonnektivität. Wenn Sie sich in einer Umgebung befinden, die WLAN-Konnektivität bietet, steht Ihnen in der Regel eine höhere Bandbreite zur Verfügung als wenn Sie auf eine Mobilfunkverbindung angewiesen sind. Sie können zwar immer noch eine Verbindung zum Internet herstellen, aber einige Vorgänge, wie z.B. das Streamen von Videoinhalten, können über eine Mobilfunkverbindung langsamer (und teurer) sein als über eine W-LAN-Verbindung.
Da es diese Herausforderungen bei mobilen Geräten gibt, müssen Sie Code schreiben, um sich vor Problemen zu schützen. Wenn Sie keinen solchen Code schreiben und Ihre Anwendung versucht, Vorgänge auszuführen, die das Internet nutzen, reagiert Ihre Anwendung möglicherweise nicht mehr.
Außerdem möchten Sie eine gute Benutzererfahrung bereitstellen, wenn Ihre Anwendung keine Verbindung mit dem Internet herstellen kann. Wenn Ihre Anwendung nicht mehr funktioniert, weil kein Internetdienst verfügbar ist, kann dies zu Verwirrung bei Ihren Benutzern führen. Am besten ist es, Ihren Benutzern Informationen bereitzustellen. Teilen Sie ihnen mit, dass keine Internetverbindung besteht und die Anwendung deshalb möglicherweise nicht vollständig funktioniert. Die folgende Abbildung zeigt ein Beispiel:.
In diesem Beispiel informiert der Anwendungsentwickler den Benutzer, dass keine Internetverbindung besteht und er versuchen sollte, sich über WLAN zu verbinden.
Erkennen der Netzwerkkonnektivität
Verwenden Sie die Connectivity
-Klasse, um die Netzwerkkonnektivität in einer .NET MAUI-App zu überprüfen. Diese Klasse stellt eine Eigenschaft namens NetworkAccess
und ein Ereignis namens ConnectivityChanged
zur Verfügung. Sie können diese Member verwenden, um Änderungen im Netzwerk zu erkennen.
Sie greifen über eine andere Eigenschaft namens Current
auf die NetworkAccess
-Eigenschaft zu. Dies ist der Mechanismus, den Connectivity
für den Zugriff auf die plattformspezifische Implementierung nutzt.
Die NetworkAccess
-Eigenschaft gibt einen Wert aus der NetworkAccess
-Enumeration zurück. Die Enumeration besitzt fünf Werte: ConstrainedInternet
, Internet
, Local
, None
und Unknown
. Wenn die NetworkAccess
-Eigenschaft den Wert NetworkAccess.None
zurückgibt, wissen Sie, dass keine Verbindung mit dem Internet besteht, und Sie sollten keinen Netzwerkcode ausführen. Dieser Mechanismus ist plattformübergreifend portierbar. Der folgende Code zeigt ein Beispiel:
if (Connectivity.Current.NetworkAccess == NetworkAccess.None)
{
...
}
Mit dem ConnectivityChanged
-Ereignis können Sie auch ermitteln, ob das Gerät mit dem Internet verbunden ist. Das ConnectivityChanged
-Ereignis wird automatisch ausgelöst, wenn sich der Netzwerkstatus ändert. Wenn Sie beispielsweise mit einer aktiven Netzwerkverbindung beginnen und Sie diese irgendwann verlieren, wird das ConnectivityChanged
-Ereignis ausgelöst, um Sie über die Änderung zu informieren. Einer der Parameter, der an den ConnectivityChanged
-Ereignishandler übergeben wird, ist ein ConnectivityChangedEventArgs
-Objekt. Dieses Objekt enthält eine Eigenschaft namens IsConnected
. Sie können die IsConnected
Eigenschaft verwenden, um zu ermitteln, ob Sie mit dem Internet verbunden sind. Hier sehen Sie ein Beispiel:
Connectivity.Current.ConnectivityChanged += Connectivity_ConnectivityChanged;
...
void Connectivity_ConnectivityChanged(object sender, ConnectivityChangedEventArgs e)
{
bool stillConnected = e.IsConnected;
}
Das ConnectivityChanged
-Ereignis ermöglicht es Ihnen, Apps zu schreiben, die eine Änderung des Netzwerkstatus erkennen und daraufhin die verfügbaren Funktionen an die verschiedenen Umgebungen anpassen können.