Xamarin.Forms Einführung in Webdienste
Dieses Thema enthält eine exemplarische Vorgehensweise für die Xamarin.Forms Beispielanwendung, die die Kommunikation mit verschiedenen Webdiensten veranschaulicht. Während jeder Webdienst eine separate Beispielanwendung verwendet, sind sie funktional ähnlich und teilen gemeinsame Klassen.
Die unten beschriebene Aufgabenlistenanwendung wird verwendet, um zu veranschaulichen, wie auf verschiedene Arten von Webdienst-Back-Ends zugegriffen Xamarin.Formswerden kann. Sie bietet Funktionen für:
- Eine Liste der Aufgaben anzeigen.
- Aufgaben hinzufügen, bearbeiten und löschen.
- Legen Sie den Status eines Vorgangs auf "fertig" fest.
- Sprechen Sie die Namen- und Notizenfelder des Vorgangs.
In allen Fällen werden die Aufgaben in einem Back-End gespeichert, auf das über einen Webdienst zugegriffen wird.
Wenn die Anwendung gestartet wird, wird eine Seite angezeigt, auf der alle vom Webdienst abgerufenen Aufgaben aufgelistet sind, und der Benutzer kann eine neue Aufgabe erstellen. Wenn Sie auf eine Aufgabe klicken, navigiert die Anwendung zu einer zweiten Seite, auf der die Aufgabe bearbeitet, gespeichert, gelöscht und gesprochen werden kann. Die fertige Anwendung wird unten gezeigt:
Jedes Thema in diesem Leitfaden enthält einen Downloadlink zu einer anderen Version der Anwendung, die einen bestimmten Typ von Webdienst-Back-End veranschaulicht. Laden Sie den relevanten Beispielcode auf der Seite herunter, die sich auf jeden Webdienststil bezieht.
Grundlegendes zur Anwendungsatomie
Das freigegebene Codeprojekt für jede Beispielanwendung besteht aus drei Standard Ordnern:
Ordner | Zweck |
---|---|
Daten | Enthält die Klassen und Schnittstellen, die zum Verwalten von Datenelementen und zur Kommunikation mit dem Webdienst verwendet werden. Dies umfasst mindestens die TodoItemManager Klasse, die über eine Eigenschaft in der App Klasse verfügbar gemacht wird, um Webdienstvorgänge aufzurufen. |
Modelle | Enthält die Datenmodellklassen für die Anwendung. Dies umfasst mindestens die TodoItem Klasse, die ein einzelnes Datenelement modelliert, das von der Anwendung verwendet wird. Der Ordner kann auch alle zusätzlichen Klassen enthalten, die zum Modellieren von Benutzerdaten verwendet werden. |
Ansichten | Enthält die Seiten für die Anwendung. Dies besteht in der Regel aus den Klassen und TodoItemPage allen zusätzlichen Klassen, die TodoListPage für Authentifizierungszwecke verwendet werden. |
Das freigegebene Codeprojekt für jede Anwendung besteht auch aus einer Reihe wichtiger Dateien:
Datei | Zweck |
---|---|
Constants.cs | Die Constants Klasse, die alle Konstanten angibt, die von der Anwendung für die Kommunikation mit dem Webdienst verwendet werden. Diese Konstanten erfordern eine Aktualisierung, um auf Ihren persönlichen Back-End-Dienst zuzugreifen, der auf einem Anbieter erstellt wurde. |
ITextToSpeech.cs | Die ITextToSpeech Schnittstelle, die angibt, dass die Speak Methode von allen implementierenden Klassen bereitgestellt werden muss. |
Todo.cs | Die App Klasse, die für die Instanziierung der ersten Seite verantwortlich ist, die von der Anwendung auf jeder Plattform angezeigt wird, und die TodoItemManager Klasse, die zum Aufrufen von Webdienstvorgängen verwendet wird. |
Ansichtsseiten
Der Großteil der Beispielanwendungen enthält mindestens zwei Seiten:
- TodoListPage – Diese Seite zeigt eine Liste von
TodoItem
Instanzen und ein Teilstrichsymbol an, wenn dieTodoItem.Done
Eigenschaft isttrue
. Wenn Sie auf ein Element klicken, navigiert sie zu derTodoItemPage
. Darüber hinaus können neue Elemente durch Klicken auf das + Symbol erstellt werden. - TodoItemPage – Auf dieser Seite werden die Details für die ausgewählten
TodoItem
Elemente angezeigt und können bearbeitet, gespeichert, gelöscht und gesprochen werden.
Darüber hinaus enthalten einige Beispielanwendungen zusätzliche Seiten, die zum Verwalten des Benutzerauthentifizierungsprozesses verwendet werden.
Modellieren der Daten
Jede Beispielanwendung verwendet die TodoItem
Klasse, um die angezeigten und an den Webdienst gesendeten Daten für den Speicher zu modellieren. Das folgende Codebeispiel zeigt die TodoItem
-Klasse:
public class TodoItem
{
public string ID { get; set; }
public string Name { get; set; }
public string Notes { get; set; }
public bool Done { get; set; }
}
Die ID
Eigenschaft wird verwendet, um jede TodoItem
Instanz eindeutig zu identifizieren und wird von jedem Webdienst verwendet, um daten zu identifizieren, die aktualisiert oder gelöscht werden sollen.
Aufrufen von Webdienstvorgängen
Auf Webdienstvorgänge wird über die TodoItemManager
Klasse zugegriffen, und auf eine Instanz der Klasse kann über die App.TodoManager
Eigenschaft zugegriffen werden. Die TodoItemManager
Klasse stellt die folgenden Methoden zum Aufrufen von Webdienstvorgängen bereit:
- GetTasksAsync – diese Methode wird verwendet, um das
ListView
Steuerelement auf demTodoListPage
VomTodoItem
Webdienst abgerufenen Instanzen aufzufüllen. - SaveTaskAsync – diese Methode wird verwendet, um eine
TodoItem
Instanz im Webdienst zu erstellen oder zu aktualisieren. - DeleteTaskAsync – diese Methode wird verwendet, um eine
TodoItem
Instanz im Webdienst zu löschen.
Darüber hinaus enthalten einige Beispielanwendungen zusätzliche Methoden in der TodoItemManager
Klasse, die zum Verwalten des Benutzerauthentifizierungsprozesses verwendet werden.
Anstatt die Webdienstvorgänge direkt aufzurufen, rufen die TodoItemManager
Methoden Methoden für eine abhängige Klasse auf, die in den TodoItemManager
Konstruktor eingefügt wird. Beispielsweise fügt eine Beispielanwendung die Klasse in den TodoItemManager
Konstruktor ein, um die RestService
Implementierung bereitzustellen, die REST-APIs für den Zugriff auf Daten verwendet.