Xamarin.Forms Webdiensteinführung
Dieses Thema enthält eine exemplarische Vorgehensweise der Xamarin.Forms Beispielanwendung, die die Kommunikation mit verschiedenen Webdiensten veranschaulicht. Während jeder Webdienst eine separate Beispielanwendung verwendet, sind sie funktional ähnlich und verwenden gemeinsame Klassen.
Die unten beschriebene Beispiel-To-Do-Listenanwendung wird verwendet, um den Zugriff auf verschiedene Arten von Webdienst-Back-Ends mit Xamarin.Formszu veranschaulichen. Es bietet Funktionen für Folgendes:
- Zeigen Sie eine Liste von Aufgaben an.
- Hinzufügen, Bearbeiten und Löschen von Aufgaben.
- Legen Sie die status einer Aufgabe auf "fertig" fest.
- Sprechen Sie die Felder "Name" und "Notizen" der Aufgabe an.
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 Aufgaben aufgelistet sind, die aus dem Webdienst abgerufen wurden, und es dem Benutzer ermöglicht, eine neue Aufgabe zu 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 Handbuch bietet 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 die einzelnen Webdienststile 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 schließt mindestens die TodoItemManager -Klasse ein, 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 TodoListPage Klassen und TodoItemPage und allen zusätzlichen Klassen, die zu Authentifizierungszwecken 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 bei 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 Klasse, die TodoItemManager zum Aufrufen von Webdienstvorgängen verwendet wird. |
Seiten anzeigen
Die meisten Beispielanwendungen enthalten mindestens zwei Seiten:
- TodoListPage : Auf dieser Seite wird eine Liste von
TodoItem
Instanzen und ein Häkchensymbol angezeigt, wenn dieTodoItem.Done
-Eigenschaft lautettrue
. Wenn Sie auf ein Element klicken, navigieren Sie zu .TodoItemPage
Darüber hinaus können neue Elemente erstellt werden, indem Sie auf das + Symbol klicken. - TodoItemPage : Auf dieser Seite werden die Details für das ausgewählte
TodoItem
angezeigt, und es kann 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 Daten zu modellieren, die angezeigt und zur Speicherung an den Webdienst gesendet werden. 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
instance 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 instance 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 Steuerelement auf dem
ListView
TodoListPage
mit den Instanzen aufzufüllen, dieTodoItem
aus dem Webdienst abgerufen wurden. - SaveTaskAsync: Diese Methode wird verwendet, um eine
TodoItem
instance für den Webdienst zu erstellen oder zu aktualisieren. - DeleteTaskAsync: Diese Methode wird verwendet, um eine
TodoItem
instance 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 RestService
TodoItemManager
Konstruktor ein, um die Implementierung bereitzustellen, die REST-APIs für den Zugriff auf Daten verwendet.