Neste artigo eu vou mostrar como podemos carregar arquivos PDF em uma view WebView 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 o meu artigo de apresentação do componente WebView : Xamarin Forms - Apresentando e usando a WebView
Hoje veremos como abrir arquivos PDF em uma WebView e fazer o download. Para isso vamos usar a seguinte abordagem:
Assim poderemos baixar arquivos PDF em páginas que contenham links para esses arquivos. É uma solução meio quebra-galho mas funciona neste cenário.
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_WebViewPDF.
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_WebViewPDF"
x:Class="XF_WebViewPDF.MainPage">
<StackLayout>
<Label Text="WebView - PDF"
VerticalOptions="Center"
HorizontalOptions="Center" />
<WebView x:Name="navegador" Source="http://www.pdfpdf.com/samples.html"
Navigating="webOnNavigating"
HorizontalOptions="FillAndExpand"
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 WebView onde definimos a propriedade Source para a URL onde teremos links para arquivos PDF
No arquivo
MainPage.xaml.cs temo o código do evento
webOnNavigating do botão de comando que é visto a seguir:
using System;
using Xamarin.Forms;
namespace XF_WebViewPDF
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
protected void webOnNavigating(object sender, WebNavigatingEventArgs e)
{
if (e.Url.Contains(".pdf"))
{
// retornando a URL
var pdfUrl = new Uri(e.Url);
// Abre a URL do PSD com o navegador para download
Device.OpenUri(pdfUrl);
// Cancela navegacao ao clicar
// (reêm a mesma pagina.)
e.Cancel = true;
}
}
}
}
|
Neste código verificamos se a URl contém um indicação da extensão '.pdf' e abrimos a url obtida no link clicado.
Executando o projeto
usando o emulador Genymotion para o Android
iremos obter o seguinte resultado:
Ao clicar no link a URL será extraída e o download iniciado.
Pegue o código do projeto compartilhado aqui : XF_WebViewPDF.zip (sem as referências)
"E os que são de Cristo crucificaram a carne com as suas
paixões e concupiscências.
Se vivemos em Espírito, andemos também em Espírito.
Não sejamos cobiçosos de vanglórias, irritando-nos uns
aos outros, invejando-nos uns aos outros."
Gálatas 5:24-26
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