Hálózati kapcsolat észlelése
A mobileszközök Wi-Fi- és mobiltechnológiát használnak az internethez való csatlakozáshoz. Ez a függőség azt jelenti, hogy a felhasználók elveszíthetik az internetkapcsolatukat az alkalmazás használata során. Ha nem ad hozzá kódot, hogy védelmet nyújtson ezzel a lehetőséggel szemben, az alkalmazás leállhat a válaszadással, és rossz élményt nyújthat a felhasználóknak.
Ebben a leckében úgy védheti meg az alkalmazást, hogy észleli, ha a felhasználók elveszítik az internetkapcsolatukat. Ez az információ akkor válik fontossá, amikor elkezdünk REST-webszolgáltatásokat használni.
Miért érdemes észlelni a hálózati kapcsolatot mobilalkalmazásokon?
Annak észlelése, hogy van-e internetkapcsolat egy mobilalkalmazáson, fontos, mert a mobileszközök gyakran elveszítik a kapcsolatot. Ennek oka lehet egy hálózati szolgáltató gyenge lefedettsége, vagy ha olyan környezetben van, ahol korlátozott vagy nincs recepció, például alagút, mély völgy vagy magas hegy. A hálózati kapcsolatoknak különböző típusai is vannak. Ha olyan környezetben található, amely wi-fi kapcsolatot biztosít, általában nagyobb sávszélessége van, mint ha a mobilhálózati hozzáféréstől függ. Lehet, hogy továbbra is tud csatlakozni az internethez, de egyes műveletek, például a videotartalmak streamelése, lassabbak (és költségesek) lehetnek egy mobilhálózati kapcsolaton keresztül, mint egy Wi-Fi-kapcsolat.
Mivel a mobileszközöknek vannak ilyen kihívásai, kódokat kell írnia az ellenük való védelemhez. Ha nem, és az alkalmazás az internetet használó műveleteket kísérel meg végrehajtani, előfordulhat, hogy az alkalmazás nem válaszol.
Emellett jó felhasználói élményt szeretne nyújtani, ha az alkalmazás nem tud csatlakozni az internethez. Ha az alkalmazás nem működik, mert nincs internetszolgáltatás, előfordulhat, hogy a felhasználók összezavarodnak. A legjobb dolog, ha információt ad a felhasználóknak. Mondja el nekik, hogy nincs internetkapcsolata, és előfordulhat, hogy az alkalmazás nem teljes körűen működik nélküle. Az alábbi képen egy példa látható:
Ebben a példában az alkalmazás fejlesztője tájékoztatja a felhasználót, hogy nincs internetkapcsolata, és meg kell próbálnia csatlakoznia a Wi-Fi-hez.
Hálózati kapcsolat észlelése
A .NET MAUI-alkalmazások hálózati kapcsolatának ellenőrzéséhez használja az osztályt Connectivity
. Ez az osztály egy hívott NetworkAccess
tulajdonságot és egy nevű ConnectivityChanged
eseményt tesz elérhetővé. Ezekkel a tagokkal észlelheti a hálózati változásokat.
A tulajdonságot egy NetworkAccess
másik, úgynevezett tulajdonságon keresztül érheti Current
el. Ez az a mechanizmus, amely Connectivity
a platformspecifikus megvalósítás eléréséhez szükséges.
A NetworkAccess
tulajdonság egy értéket ad vissza az NetworkAccess
enumerálásból. Az enumerálás öt értékkel rendelkezik: ConstrainedInternet
, Internet
, Local
, None
és Unknown
. Ha a NetworkAccess
tulajdonság értéke NetworkAccess.None
, akkor tudja, hogy nincs internetkapcsolata, és nem szabad hálózati kódot futtatnia. Ez a mechanizmus több platformon is hordozható. Az alábbi kód példa erre:
if (Connectivity.Current.NetworkAccess == NetworkAccess.None)
{
...
}
Az ConnectivityChanged
esemény lehetővé teszi annak megállapítását is, hogy az eszköz csatlakozik-e az internethez. Az ConnectivityChanged
esemény automatikusan aktiválódik, amikor a hálózati állapot megváltozik. Ha például egy aktív hálózati kapcsolattal kezd, és végül elveszíti azt, az ConnectivityChanged
esemény azért jön létre, hogy tájékoztassa Önt a változásról. Az eseménykezelőnek ConnectivityChanged
átadott paraméterek egyike egy ConnectivityChangedEventArgs
objektum. Ez az objektum egy .IsConnected
A tulajdonság segítségével IsConnected
megállapíthatja, hogy csatlakozik-e az internethez. Here's an example:
Connectivity.Current.ConnectivityChanged += Connectivity_ConnectivityChanged;
...
void Connectivity_ConnectivityChanged(object sender, ConnectivityChangedEventArgs e)
{
bool stillConnected = e.IsConnected;
}
Az ConnectivityChanged
esemény lehetővé teszi olyan alkalmazások írását, amelyek észlelik a hálózati állapot változását, és zökkenőmentesen módosíthatják a különböző környezetek szerint elérhető funkciókat.