Xamarin.Forms Web 服務簡介
本主題提供範例應用程式的逐步 Xamarin.Forms 解說,示範如何與不同的 Web 服務通訊。 雖然每個 Web 服務都使用不同的範例應用程式,但它們在功能上很類似,並共用一般類別。
以下所述的範例 to-do 列表應用程式是用來示範如何使用 來存取不同類型的 Web 服務後端 Xamarin.Forms。 它提供下列功能:
- 檢視工作清單。
- 新增、編輯和刪除工作。
- 將工作的狀態設定為 「完成」。
- 說出工作的名稱和附註欄位。
在所有情況下,工作都會儲存在透過 Web 服務存取的後端。
啟動應用程式時,會顯示一個頁面,其中列出從 Web 服務擷取的任何工作,並允許使用者建立新的工作。 按兩下工作會將應用程式巡覽至第二個頁面,其中工作可以編輯、儲存、刪除和說話。 最終的應用程式如下所示:
本指南中的每個主題都會提供不同版本的應用程式下載連結,以示範特定類型的 Web 服務後端。 下載頁面上與每個 Web 服務樣式相關的相關範例程式代碼。
瞭解應用程序結構
每個範例應用程式的共享程式代碼專案包含三個主要資料夾:
資料夾 | 目的 |
---|---|
資料 | 包含用來管理數據項,並與 Web 服務通訊的類別和介面。 至少,這包括 類別 TodoItemManager ,其會透過 類別中的 App 屬性公開,以叫用Web服務作業。 |
模型 | 包含應用程式的數據模型類別。 這至少包含 類別 TodoItem ,它會為應用程式所使用的單一數據專案建立模型。 資料夾也可以包含用來建立用戶數據模型的任何其他類別。 |
檢視 | 包含應用程式的頁面。 這通常包含 TodoListPage 和 TodoItemPage 類別,以及用於驗證用途的任何其他類別。 |
每個應用程式的共享程式代碼專案也包含一些重要檔案:
檔案 | 目的 |
---|---|
Constants.cs | 類別 Constants ,指定應用程式用來與 Web 服務通訊的任何常數。 這些常數需要更新,才能存取在提供者上建立的個人後端服務。 |
ITextToSpeech.cs | 介面 ITextToSpeech ,指定 Speak 方法必須由任何實作類別提供。 |
Todo.cs | App 負責具現化應用程式在每個平台上顯示的第一個頁面,以及用來叫用 Web 服務作業的TodoItemManager 類別。 |
檢視表頁面
大部分範例應用程式至少包含兩個頁面:
- TodoListPage – 此頁面會顯示實例清單
TodoItem
,如果 屬性為true
,TodoItem.Done
則會顯示刻度圖示。 點選項目會巡覽至TodoItemPage
。 此外,您可以按下 + 符號來建立新的專案。 - TodoItemPage – 此頁面會顯示所選取
TodoItem
的詳細數據,並允許編輯、儲存、刪除和說話。
此外,某些範例應用程式包含用來管理使用者驗證程式的其他頁面。
建立資料模型
每個範例應用程式都會 TodoItem
使用 類別來建立顯示並傳送至 Web 服務以進行記憶體的數據模型。 下列程式碼範例顯示 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
實例,並由每個 Web 服務用來識別要更新或刪除的數據。
叫用 Web 服務作業
Web 服務作業是透過 TodoItemManager
類別存取,而 類別的實例可以透過 App.TodoManager
屬性來存取。 類別 TodoItemManager
提供下列方法來叫用 Web 服務作業:
- GetTasksAsync – 這個方法可用來將 上的
TodoListPage
TodoItem
控件填ListView
入從 Web 服務擷取的實例。 - SaveTaskAsync – 這個方法可用來在 Web 服務上建立或更新
TodoItem
實例。 - DeleteTaskAsync – 這個方法可用來刪除
TodoItem
Web 服務上的實例。
此外,某些範例應用程式在類別中包含 TodoItemManager
其他方法,可用來管理使用者驗證程式。
方法會叫用插入建構函式的TodoItemManager
相依類別,而不是直接TodoItemManager
叫用Web服務作業。 例如,一個範例應用程式會將 RestService
類別插入建構函式, TodoItemManager
以提供使用 REST API 來存取資料的實作。