Bagikan melalui


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:

Aplikasi Todo - halaman pertamaAplikasi Todo - halaman kedua

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 jika TodoItem.Done properti adalah true. Mengklik item menavigasi ke TodoItemPage. 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 pada TodoListPage dengan instans yang TodoItem 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.