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:

Todo-Anwendung – erste SeiteTodo-Anwendung – zweite Seite

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 die TodoItem.Done Eigenschaft ist true. Wenn Sie auf ein Element klicken, navigiert sie zu der TodoItemPage. 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 TodoItemElemente 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 dem TodoListPage Vom TodoItem 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.