Xamarin.Forms Pengantar Layanan Web
Topik ini menyediakan panduan Xamarin.Forms aplikasi sampel yang menunjukkan cara berkomunikasi dengan layanan web yang berbeda. Meskipun setiap layanan web menggunakan aplikasi sampel terpisah, mereka secara fungsional mirip dan berbagi kelas umum.
Contoh aplikasi daftar tugas yang dijelaskan di bawah ini digunakan untuk menunjukkan cara mengakses berbagai jenis backend layanan web dengan Xamarin.Forms. Ini menyediakan fungsionalitas untuk:
- Menampilkan daftar tugas.
- Menambahkan, mengedit, dan menghapus tugas.
- Atur status tugas ke 'selesai'.
- Ucapkan bidang nama dan catatan tugas.
Dalam semua kasus, tugas disimpan di backend yang diakses melalui layanan web.
Ketika aplikasi diluncurkan, halaman ditampilkan yang mencantumkan tugas apa pun yang diambil dari layanan web, dan memungkinkan pengguna untuk membuat tugas baru. Mengklik tugas menavigasi aplikasi ke halaman kedua tempat tugas dapat diedit, disimpan, dihapus, dan diucapkan. Aplikasi akhir ditunjukkan di bawah ini:
Setiap topik dalam panduan ini menyediakan tautan unduhan ke versi aplikasi yang berbeda yang menunjukkan jenis backend layanan web tertentu. Unduh kode sampel yang relevan di halaman yang berkaitan dengan setiap gaya layanan web.
Memahami anatomi aplikasi
Proyek kode bersama untuk setiap aplikasi sampel terdiri dari tiga folder utama:
Folder | Tujuan |
---|---|
Data | Berisi kelas dan antarmuka yang digunakan untuk mengelola item data, dan berkomunikasi dengan layanan web. Minimal, ini termasuk TodoItemManager kelas , yang diekspos melalui properti di App kelas untuk memanggil operasi layanan web. |
Model | Berisi kelas model data untuk aplikasi. Minimal, ini termasuk TodoItem kelas , yang memodelkan satu item data yang digunakan oleh aplikasi. Folder juga dapat menyertakan kelas tambahan yang digunakan untuk memodelkan data pengguna. |
Tampilan | Berisi halaman untuk aplikasi. Ini biasanya terdiri dari TodoListPage kelas dan TodoItemPage , dan kelas tambahan apa pun yang digunakan untuk tujuan autentikasi. |
Proyek kode bersama untuk setiap aplikasi juga terdiri dari sejumlah file penting:
File | Tujuan |
---|---|
Constants.cs | Kelas Constants , yang menentukan konstanta apa pun yang digunakan oleh aplikasi untuk berkomunikasi dengan layanan web. Konstanta ini memerlukan pembaruan untuk mengakses layanan backend pribadi Anda yang dibuat pada penyedia. |
ITextToSpeech.cs | Antarmuka ITextToSpeech , yang menentukan bahwa Speak metode harus disediakan oleh kelas penerapan apa pun. |
Todo.cs | Kelas App yang bertanggung jawab untuk membuat instans halaman pertama yang akan ditampilkan oleh aplikasi di setiap platform, dan TodoItemManager kelas yang digunakan untuk memanggil operasi layanan web. |
Tampilkan halaman
Sebagian besar aplikasi sampel berisi setidaknya dua halaman:
- TodoListPage – halaman ini menampilkan daftar
TodoItem
instans, dan ikon centang jikaTodoItem.Done
properti adalahtrue
. Mengklik item menavigasi keTodoItemPage
. Selain itu, item baru dapat dibuat dengan mengklik + simbol . - TodoItemPage – halaman ini menampilkan detail untuk yang dipilih
TodoItem
, dan memungkinkannya untuk diedit, disimpan, dihapus, dan diucapkan.
Selain itu, beberapa aplikasi sampel berisi halaman tambahan yang digunakan untuk mengelola proses autentikasi pengguna.
Membuat model data
Setiap aplikasi sampel menggunakan TodoItem
kelas untuk memodelkan data yang ditampilkan dan dikirim ke layanan web untuk penyimpanan. Contoh kode berikut menunjukkan TodoItem
kelas :
public class TodoItem
{
public string ID { get; set; }
public string Name { get; set; }
public string Notes { get; set; }
public bool Done { get; set; }
}
Properti ID
ini digunakan untuk mengidentifikasi setiap TodoItem
instans secara unik, dan digunakan oleh setiap layanan web untuk mengidentifikasi data yang akan diperbarui atau dihapus.
Memanggil operasi layanan web
Operasi layanan web diakses melalui TodoItemManager
kelas , dan instans kelas dapat diakses melalui App.TodoManager
properti . Kelas TodoItemManager
ini menyediakan metode berikut untuk memanggil operasi layanan web:
- GetTasksAsync – metode ini digunakan untuk mengisi
ListView
kontrol padaTodoListPage
dengan instans yangTodoItem
diambil dari layanan web. - SaveTaskAsync – metode ini digunakan untuk membuat atau memperbarui
TodoItem
instans di layanan web. - DeleteTaskAsync – metode ini digunakan untuk menghapus
TodoItem
instans di layanan web.
Selain itu, beberapa aplikasi sampel berisi metode tambahan di TodoItemManager
kelas , yang digunakan untuk mengelola proses autentikasi pengguna.
Daripada memanggil operasi layanan web secara langsung, TodoItemManager
metode memanggil metode pada kelas dependen yang disuntikkan ke TodoItemManager
dalam konstruktor. Misalnya, satu aplikasi sampel menyuntikkan RestService
kelas ke dalam TodoItemManager
konstruktor untuk menyediakan implementasi yang menggunakan REST API untuk mengakses data.