Hálózati kapcsolat észlelése

Befejeződött

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ó:

Screenshot of an app showing a warning about limited network connectivity.

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ű ConnectivityChangedesemé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 Currentel. 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.

Tudáspróba

1.

Az alábbiak közül melyik a legjobb ok annak ellenőrzésére, hogy csatlakozik-e az internethez a hálózati kód futtatása előtt?

2.

Tegyük fel, hogy olyan alkalmazást ír, amelyet egy felhasználó futtathat, miközben egy járműben utazik. Ha a jármű alagútba lép, az eszköz elveszítheti az internetkapcsolatot. Az osztály melyik tagját Connectivity kell használnia a hálózati kapcsolat változásának észleléséhez?"