Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tópico fornece um passo a passo do Xamarin.Forms aplicativo de exemplo que demonstra como se comunicar com diferentes serviços Web. Embora cada serviço Web use um aplicativo de exemplo separado, eles são funcionalmente semelhantes e compartilham classes comuns.
O aplicativo de lista de tarefas de exemplo descrito abaixo é usado para demonstrar como acessar diferentes tipos de back-ends de serviço Web com Xamarin.Formso . Ele fornece funcionalidade para:
- Exibir uma lista de tarefas.
- Adicionar, editar e excluir tarefas.
- Defina o status de uma tarefa como 'concluído'.
- Fale o nome da tarefa e os campos de anotações.
Em todos os casos, as tarefas são armazenadas em um back-end que é acessado por meio de um serviço Web.
Quando o aplicativo é iniciado, é exibida uma página que lista todas as tarefas recuperadas do serviço Web e permite que o usuário crie uma nova tarefa. Clicar em uma tarefa conduz o aplicativo para uma segunda página, onde a tarefa pode ser editada, salva, excluída e falada. O aplicativo final é mostrado abaixo:


Cada tópico neste guia fornece um link de download para uma versão diferente do aplicativo que demonstra um tipo específico de back-end de serviço Web. Baixe o código de exemplo relevante na página relacionada a cada estilo de serviço Web.
Entender a anatomia do aplicativo
O projeto de código compartilhado para cada aplicativo de exemplo consiste em três pastas principais:
| Pasta | Finalidade |
|---|---|
| Dados | Contém as classes e interfaces usadas para gerenciar itens de dados e se comunicar com o serviço Web. No mínimo, isso inclui a TodoItemManager classe, que é exposta por meio de uma propriedade na App classe para invocar operações de serviço Web. |
| Modelos | Contém as classes de modelo de dados para o aplicativo. No mínimo, isso inclui a classe, que modela TodoItem um único item de dados usado pelo aplicativo. A pasta também pode incluir quaisquer classes adicionais usadas para modelar dados do usuário. |
| Exibições | Contém as páginas do aplicativo. Isso geralmente consiste nas TodoListPage classes e TodoItemPage e quaisquer classes adicionais usadas para fins de autenticação. |
O projeto de código compartilhado para cada aplicativo também consiste em vários arquivos importantes:
| Arquivo | Finalidade |
|---|---|
| Constants.cs | A Constants classe, que especifica quaisquer constantes usadas pelo aplicativo para se comunicar com o serviço Web. Essas constantes exigem atualização para acessar seu serviço de back-end pessoal criado em um provedor. |
| ITextToSpeech.cs | A ITextToSpeech interface, que especifica que o Speak método deve ser fornecido por qualquer classe de implementação. |
| Todo.cs | A App classe responsável por instanciar a primeira página que será exibida pelo aplicativo em cada plataforma e a TodoItemManager classe usada para invocar operações de serviço Web. |
Páginas de exibição
A maioria dos aplicativos de exemplo contém pelo menos duas páginas:
- TodoListPage – esta página exibe uma lista de instâncias e um ícone de
TodoItemtick se aTodoItem.Donepropriedade fortrue. Clicar em um item navega até oTodoItemPage. Além disso, novos itens podem ser criados clicando no + símbolo. - TodoItemPage – esta página exibe os detalhes do ,
TodoItemselecionado e permite que ele seja editado, salvo, excluído e falado.
Além disso, alguns aplicativos de exemplo contêm páginas adicionais que são usadas para gerenciar o processo de autenticação do usuário.
Modelar os dados
Cada aplicativo de exemplo usa a TodoItem classe para modelar os dados que são exibidos e enviados ao serviço Web para armazenamento. O exemplo de código a seguir mostra a classe TodoItem:
public class TodoItem
{
public string ID { get; set; }
public string Name { get; set; }
public string Notes { get; set; }
public bool Done { get; set; }
}
A ID propriedade é usada para identificar exclusivamente cada TodoItem instância e é usada por cada serviço Web para identificar dados a serem atualizados ou excluídos.
Invocar operações de serviço Web
As operações de serviço Web são acessadas por meio da TodoItemManager classe, e uma instância da classe pode ser acessada por meio da App.TodoManager propriedade. A TodoItemManager classe fornece os seguintes métodos para invocar operações de serviço Web:
- GetTasksAsync – esse método é usado para preencher o
ListViewcontrole noTodoListPagecom asTodoIteminstâncias recuperadas do serviço Web. - SaveTaskAsync – esse método é usado para criar ou atualizar uma
TodoIteminstância no serviço Web. - DeleteTaskAsync – esse método é usado para excluir uma
TodoIteminstância no serviço Web.
Além disso, alguns aplicativos de exemplo contêm métodos adicionais na TodoItemManager classe, que são usados para gerenciar o processo de autenticação do usuário.
Em vez de invocar as operações de serviço Web diretamente, os TodoItemManager métodos invocam métodos em uma classe dependente que é injetada TodoItemManager no construtor. Por exemplo, um aplicativo de exemplo injeta a RestService classe no TodoItemManager construtor para fornecer a implementação que usa APIs REST para acessar dados.