Xamarin.Forms Общие сведения о веб-службах
В этом разделе представлено пошаговое руководство Xamarin.Forms по образцу приложения, демонстрирующее взаимодействие с различными веб-службами. Хотя каждая веб-служба использует отдельное пример приложения, они функционально похожи и совместно используют общие классы.
Пример приложения списка действий, описанного ниже, используется для демонстрации доступа к различным типам внутренних веб-служб с помощью Xamarin.Forms. Она предоставляет следующие функции:
- Просмотр списка задач.
- Добавление, изменение и удаление задач.
- Задайте для задачи состояние "готово".
- Проговорите поля имени и заметок задачи.
Во всех случаях задачи хранятся в серверной части, которая обращается через веб-службу.
При запуске приложения отображается страница, которая выводит список всех задач, полученных из веб-службы, и позволяет пользователю создавать новую задачу. Щелкнув задачу, приложение перемещается на вторую страницу, где задачу можно редактировать, сохранять, удалять и говорить. Ниже показано итоговое приложение:
Каждый раздел в этом руководстве содержит ссылку на скачивание в другую версию приложения, демонстрирующую определенный тип серверной части веб-службы. Скачайте соответствующий пример кода на странице, относящейся к каждому стилю веб-службы.
Общие сведения об анатомии приложения
Проект общего кода для каждого примера приложения состоит из трех основных папок:
Папка | Характер использования |
---|---|
Data | Содержит классы и интерфейсы, используемые для управления элементами данных, и обмен данными с веб-службой. Как минимум, это включает TodoItemManager класс, который предоставляется через свойство в App классе для вызова операций веб-службы. |
Модели | Содержит классы модели данных для приложения. Как минимум, это TodoItem включает класс, который моделирует один элемент данных, используемый приложением. Папка также может включать любые дополнительные классы, используемые для моделирования пользовательских данных. |
Представления | Содержит страницы для приложения. Обычно это состоит из TodoListPage классов и TodoItemPage классов, а также всех дополнительных классов, используемых для проверки подлинности. |
Проект общего кода для каждого приложения также состоит из нескольких важных файлов:
Файлы | Характер использования |
---|---|
Constants.cs | Класс Constants , указывающий любые константы, используемые приложением для взаимодействия с веб-службой. Эти константы требуют обновления для доступа к вашей личной серверной службе, созданной на поставщике. |
ITextToSpeech.cs | Интерфейс ITextToSpeech , указывающий, что Speak метод должен быть предоставлен любыми классами реализации. |
Todo.cs | Класс App , отвечающий за создание экземпляра первой страницы, которая будет отображаться приложением на каждой платформе, и TodoItemManager класс, используемый для вызова операций веб-службы. |
Страницы просмотра
Большинство примеров приложений содержат по крайней мере две страницы:
- TodoListPage — на этой странице отображается список экземпляров
TodoItem
и значок галочки, еслиTodoItem.Done
это свойствоtrue
. Щелкнув элемент, перейдите к элементуTodoItemPage
. Кроме того, можно создать новые элементы, щелкнув + символ. - TodoItemPage — на этой странице отображаются сведения для выбранного элемента
TodoItem
, и он позволяет изменять, сохранять, удалять и говорить.
Кроме того, некоторые примеры приложений содержат дополнительные страницы, используемые для управления процессом проверки подлинности пользователей.
Моделирование данных
Каждый пример приложения использует TodoItem
класс для моделирования данных, отображаемых и отправленных в веб-службу для хранения. Следующий пример кода демонстрирует класс TodoItem
:
public class TodoItem
{
public string ID { get; set; }
public string Name { get; set; }
public string Notes { get; set; }
public bool Done { get; set; }
}
Свойство ID
используется для уникальной идентификации каждого TodoItem
экземпляра и используется каждой веб-службой для идентификации данных для обновления или удаления.
Вызов операций веб-службы
Операции веб-службы доступны через TodoItemManager
класс, а экземпляр класса можно получить через App.TodoManager
свойство. Класс TodoItemManager
предоставляет следующие методы для вызова операций веб-службы:
- GetTasksAsync — этот метод используется для заполнения
ListView
элемента управления наTodoListPage
TodoItem
экземплярах, полученных из веб-службы. - SaveTaskAsync — этот метод используется для создания или обновления экземпляра
TodoItem
в веб-службе. - DeleteTaskAsync — этот метод используется для удаления экземпляра
TodoItem
в веб-службе.
Кроме того, некоторые примеры приложений содержат дополнительные методы в TodoItemManager
классе, которые используются для управления процессом проверки подлинности пользователя.
Вместо прямого TodoItemManager
вызова операций веб-службы методы вызывают методы в зависимый класс, который внедряется в TodoItemManager
конструктор. Например, один пример приложения внедряет RestService
класс в TodoItemManager
конструктор, чтобы предоставить реализацию, которая использует REST API для доступа к данным.