Mendeteksi konektivitas jaringan

Selesai

Perangkat seluler menggunakan teknologi Wi-Fi dan seluler untuk terhubung ke internet. Dependensi ini berarti bahwa pengguna Anda bisa kehilangan koneksi internet mereka saat menggunakan aplikasi Anda. Jika Anda tidak menambahkan kode untuk menghindari kemungkinan ini, aplikasi Anda dapat berhenti merespons dan memberikan pengalaman buruk kepada pengguna Anda.

Dalam pelajaran ini, Anda melindungi aplikasi Anda dengan mendeteksi saat pengguna Anda kehilangan koneksi internet. Informasi ini sangat penting ketika kita mulai menggunakan layanan web REST.

Mengapa deteksi konektivitas jaringan pada aplikasi seluler diperlukan?

Jika koneksi internet diperlukan di aplikasi seluler, deteksi merupakan hal yang penting karena perangkat seluler bisa sering kehilangan koneksi. Hal ini dapat disebabkan oleh cakupan penyedia layanan jaringan yang buruk, atau karena berada di lingkungan dengan penerimaan yang terbatas atau tidak ada sama sekali, seperti terowongan, lembah yang dalam, atau gunung yang tinggi. Terdapat juga jenis jaringan yang berbeda. Jika Anda berada di lingkungan yang menyediakan konektivitas WiFi, Anda biasanya memiliki bandwidth yang lebih tinggi daripada jika Anda bergantung pada akses seluler. Anda mungkin masih dapat terhubung ke Internet, tetapi beberapa operasi, seperti konten video streaming, mungkin lebih lambat (dan mahal) melalui tautan seluler dibandingkan dengan koneksi WiFi.

Karena perangkat seluler memiliki tantangan ini, Anda harus menulis kode untuk melindunginya. Jika Anda tidak melakukannya dan ketika aplikasi Anda mencoba untuk melakukan operasi yang menggunakan internet, aplikasi Anda mungkin berhenti merespons.

Anda juga ingin memberikan pengalaman pengguna yang baik ketika aplikasi Anda tidak dapat terhubung ke Internet. Jika aplikasi Anda berhenti berfungsi karena tidak ada layanan internet, pengguna Anda mungkin akan bingung. Hal terbaik yang harus dilakukan adalah memberikan informasi kepada pengguna Anda. Beri tahu mereka bahwa Anda tidak memiliki koneksi Internet dan bahwa aplikasi Anda mungkin tidak berfungsi sepenuhnya tanpa koneksi tersebut. Gambar berikut menunjukkan contohnya:

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

Dalam contoh ini, pengembang aplikasi memberi tahu pengguna bahwa mereka tidak memiliki koneksi internet dan mereka harus mencoba menyambungkan ke Wi-Fi.

Mendeteksi konektivitas jaringan

Untuk memeriksa konektivitas jaringan di aplikasi .NET MAUI, gunakan kelas Connectivity. Kelas ini mengekspos properti yang disebut NetworkAccess dan kejadian bernama ConnectivityChanged. Anda dapat menggunakan anggota ini untuk mendeteksi perubahan di jaringan.

Anda mengakses properti NetworkAccess melalui properti lain yang disebut Current. Ini adalah mekanisme yang Connectivity diperlukan untuk mengakses implementasi khusus platform.

Properti NetworkAccess mengembalikan nilai dari enumerasi NetworkAccess. Enumerasi memiliki lima nilai: ConstrainedInternet, Internet, Local, None, dan Unknown. Jika properti NetworkAccess mengembalikan nilai NetworkAccess.None, maka Anda tahu bahwa Anda tidak memiliki koneksi ke Internet, dan Anda tidak boleh menjalankan kode jaringan. Mekanisme ini bersifat portabel di seluruh platform. Kode berikut menunjukkan contoh:

if (Connectivity.Current.NetworkAccess == NetworkAccess.None)
{
    ...
}

Kejadian ini ConnectivityChanged juga memungkinkan Anda menentukan apakah perangkat tersambung ke Internet. Kejadian ConnectivityChanged dipicu secara otomatis ketika status jaringan berubah. Misalnya, jika Anda memulai dengan koneksi jaringan aktif dan akhirnya kehilangan koneksi, kejadian ConnectivityChanged akan dipicu untuk memberi tahu Anda tentang perubahan tersebut. Salah satu parameter yang dikirimkan ke penanganan aktivitas ConnectivityChanged adalah objek ConnectivityChangedEventArgs. Objek ini berisi properti yang disebut IsConnected. Anda dapat menggunakan properti IsConnected untuk menentukan apakah Anda tersambung ke internet. Berikut contohnya:

Connectivity.Current.ConnectivityChanged += Connectivity_ConnectivityChanged;
...
void Connectivity_ConnectivityChanged(object sender, ConnectivityChangedEventArgs  e)
{
    bool stillConnected = e.IsConnected;
}

Kejadian ini ConnectivityChanged memungkinkan Anda menulis aplikasi yang dapat mendeteksi perubahan status jaringan dan menyesuaikan fungsionalitas yang tersedia dengan lancar sesuai dengan lingkungan yang berbeda.

Uji pengetahuan

1.

Manakah dari berikut yang merupakan alasan terbaik untuk memeriksa apakah Anda tersambung ke internet sebelum menjalankan kode jaringan?

2.

Misalkan Anda menulis aplikasi yang dapat dijalankan pengguna saat bepergian dengan kendaraan. Jika kendaraan memasuki terowongan, perangkat mungkin kehilangan konektivitas internet. Anggota kelas Connectivity mana yang harus Anda gunakan untuk mendeteksi perubahan dalam konektivitas jaringan?"