Neste artigo eu vou mostrar como podemos exibir conteúdo HTML em uma WebView mostrando a carga do conteúdo usando uma Progressbar em aplicações Xamarin Forms. |
O componente WebView é uma view usada para a exibição de conteúdos web e HTML em seu aplicativo. O WebView é muito versátil e possui os seguintes recursos:
Para mais detalhes veja os artigos já publicados sobre WebView :
Hoje veremos como exibir conteúdo HTML em um WebView usando uma Progressbar para acompanhar a carga do conteúdo.
Recursos Usados
Criando o projeto Xamarin Forms
Abra o VS 2017 Community e clique em New Project e a seguir escolha Cross Platform -> Cross Platform App (Xamarin.Forms) e informe o nome XF_WebViewProgressBar.
Ao criar um projeto Xamarin Forms em uma versão anterior à atualização 15.5, você tinha duas opções para compartilhar o código entre as plataformas:
Pois a partir da versão 15.5 do Visual Studio(lançada em dezembro/2017) a opção Portable Class Library (PCL) foi substituida pela .NET Standard:
Marque as opções Android e/ou iOS, marque Xamarin Forms e a seguir marque .NET Standard e clique no botão OK.
Pronto nosso projeto já esta criado. (Verifique a necessidade de atualizar a versão do Xamarin Forms no seu projeto. Atualmente(06/2018) a versão mais atual é a 3.0.0)
Definindo o código da MainPage.xaml
Abra o arquivo MainPage.xaml e inclua no código abaixo:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XF_WebViewProgressbar"
x:Class="XF_WebViewProgressbar.MainPage">
<StackLayout>
<Label Text="WebView com Progessbar"
FontSize="20"
TextColor="BlueViolet"
BackgroundColor="White"/>
<ProgressBar Progress="0.2"
HorizontalOptions="FillAndExpand"
x:Name="progressbar1"
IsVisible="True"/>
<WebView x:Name="webview1"
HeightRequest="1000"
WidthRequest="1000"
Navigating="OnNavigating"
Navigated="OnNavigated"
VerticalOptions="FillAndExpand"/>
</StackLayout>
</ContentPage>
|
Neste código temos:
Um controle StackLayout que esta empilhando os controles :
- 1 Label onde
temos estamos exibindo o texto no topo da página;
- 1 Progressbar onde propriedade
Progress foi definida em 0.2;
- 1 WebView onde
definimos os eventos OnNavigating e
OnNavigated;
No arquivo
MainPage.xaml.cs temos a atribuição da página a ser
exibida e o código dos eventos implementados:
using
Xamarin.Forms;
namespace
XF_WebViewProgressbar
protected async override void OnAppearing()
protected void OnNavigating(object
sender, WebNavigatingEventArgs e)
protected void OnNavigated(object sender,
WebNavigatedEventArgs e) |
Neste código no evento OnAppearing() estamos definidos a animação para a progressbar no método ProgressTo e no evento OnNavigating() estamos exibindo a progressbar; No evento OnNavigated, ao terminar a navegação, estamos ocultando a progressbar.
Executando o projeto
usando o emulador Genymotion para o Android
iremos obter o seguinte resultado:
Pegue o código do projeto compartilhado aqui : XF_WebViewProgressbar.zip (sem as referências)
'Agora é o juízo
deste mundo; agora será expulso o príncipe deste mundo.
E eu, quando for levantado da terra, todos atrairei a
mim.
E dizia isto, significando de que morte havia de
morrer.'
João 12:31-33
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Xamarin Android - Apresentando o controle ProgressBar - Macoratti.net
Xamarin Android - Usando o serviço de Alarme - Macoratti.net
Xamarin.Forms - Usando a view ActivityIndicator - Macoratti.net