JSON Reader 2.0
Използвайки интегрираната среда за разработка Visual Studio и езика за програмиране C# ще разработим мулти-платформено мобилно приложение за изтегляне на вицове за Чък Норис във формат JSON.
- Стартирайте интегрираната среда за разработка Visual Studio.
- Създайте нов проект: Visual C# > Cross-Platform > Mobile App (Xamarin.Forms).
- За име на проекта запишете: JSON Reader 2.0.
Добавете допълнителни пакети към проекта като инсталирате: NewtonSoft.Json и AngleSharp, от менюто: Tools > NuGet Package Manager > Package Manager Console, като изпълните следните команди в конзолата:
PM> Install-Package Newtonsoft.Json -Version 11.0.2
PM> Install-Package AngleSharp -Version 0.9.11
Добавете нов клас RootObject.cs, който ще служи за десериализиране на данните от консумираната услуга.
RootObject.cs
namespace JSON_Reader_2._0
{
// https://api.chucknorris.io/jokes/random
// http://json2csharp.com/
public class RootObject
{
public object category { get; set; }
public string icon_url { get; set; }
public string id { get; set; }
public string url { get; set; }
public string value { get; set; }
}
}
Файлът MainPage.xaml съдържа изходния код от дизайна на потребителския интерфейс на разработваното приложение и се пише на езика XAML. Копирайте (Ctrl+C) и поставете (Ctrl+V) програмният фрагмент даден по-долу във Вашето приложение.
MainPage.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="JSON_Reader_2._0.MainPage">
<!-- JSON Reader 2.0 -->
<StackLayout Padding="20">
<Label Text="JSON Reader 2.0" FontSize="Medium" />
<Button Text="Tell Me Joke" Clicked="OnButtonClicked" />
<ScrollView>
<Label x:Name="Joke" />
</ScrollView>
</StackLayout>
</ContentPage>
Файлът MainPage.xaml.cs съдържа изходния код от бизнес логиката на разработваното приложение и се пише на програмният език C#. Копирайте (Ctrl+C) и поставете (Ctrl+V) програмният фрагмент даден по-долу във Вашето приложение.
MainPage.xaml.cs
using AngleSharp.Parser.Html;
using Newtonsoft.Json;
using System;
using System.Net.Http;
using Xamarin.Forms;
namespace JSON_Reader_2._0
{
/// <summary>
/// JSON Reader 2.0
/// </summary>
public partial class MainPage : ContentPage
{
// Constructor
public MainPage()
{
InitializeComponent();
}
// Button Event Handler
async void OnButtonClicked(object sender, EventArgs args)
{
// Download JSON
HttpClient client = new HttpClient();
var json = await client.GetStringAsync(new Uri("https://api.chucknorris.io/jokes/random"));
// Deserialize the JSON
var joke = JsonConvert.DeserializeObject<RootObject>(json);
// Parse the HTML
var html = new HtmlParser().Parse(joke.value);
var text = html.Body.TextContent;
// Tell the Joke
this.Joke.Text = text;
}
}
}
Стартирайте приложението от менюто: Debug > Start Debugging или като натиснете клавиш F5.
Фиг. 69. Демонстрация на работата на мулти-платформеното мобилно приложение за изтегляне на вицове за Чък Норис