Xamarin Forms - Abrindo um link no navegador padrão


 Neste artigo vou mostrar como abrir um link de uma página Web usando o navegador padrão usando os recursos da biblioteca Xamarin Essentials.

A classe Browser da biblioteca Xamarin Essentials pode ser usada para abrir um link no navegador padrão em uma aplicação Xamarin Forms.

Se você não conhesse essa biblioteca leia o meu artigo:  Introdução ao Xamarin Essentials

A Xamarin.Essentials é uma nova biblioteca oficial da Microsoft que fornece aos desenvolvedores mais de 30 APIs de plataforma cruzada para que seus aplicativos móveis acessem os recursos nativos. Isso pode parecer similar aos Plugins for Xamarin, mas é uma evolução que é super otimizada para cada plataforma, fornece uma API consistente e é bem documentada sendo também open source no GitHub.

Motivos para usar:

Vamos lá...

Recursos usados:

Criando o projeto e instalando as dependências

Abra o  VS 2017 Community e clique em New Project e a seguir escolha Cross Platform -> Mobile App (Xamarin.Forms) e informe o nome XF_AbreLink:

A seguir selecione a Plataforma, eu marquei somente Android, e escolha a estratégia de compartilhamento que será .NET Standard.

Clique no botão OK. (Eu estou criando apenas o projeto Android mas fique a vontade para criar os demais projetos)

Pronto nosso projeto já esta criado. ( Atualmente(11/2018) a versão mais atual estável é a 3.4.0.1)

No menu Tools, clique em Nuget Package Manager e a seguir em Manage Nuget Packages for Solution;

Digite : Xamarin.Essentials para localizar o pacote e a seguir marque o pacote e instale-o em todos os projetos:

Pronto ! agora já temos todos os recursos necessários nos projetos; falta fazer alguns ajustes no projeto Android.

Ajustes a serem feitos na plataforma Android

No momento em que esse artigo foi escrito os ajustes necessários na plataforma Android eram os seguintes :

No arquivo MainActivity.cs inclua a seguinte instrução:

 Xamarin.Essentials.Platform.Init(this, savedInstanceState);

A seguir inclua também o método abaixo:

public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
{
    Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
    base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}

Definindo o código da MainPage

Agora abra o arquivo MainPage.xaml e inclua as seguintes views usando um layout StackLayout:

<?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_AbreLink"
             x:Class="XF_AbreLink.MainPage">
    <StackLayout>
        <Label FontAttributes="Bold" Text="Abre o link de uma página" VerticalOptions="Center"
HorizontalOptions="Center"/>
        <Entry x:Name="entURL" Placeholder="Informe a url do site "></Entry>
        <Button x:Name="btnBrowse" Text="Clique aqui para navegar" Clicked="btnBrowse_Click"/>
    </StackLayout>
</ContentPage>

Agora abra o arquivo MainPage.xaml.cs e defina o código para o evento do botão :

using System;
using System.Threading.Tasks;
using Xamarin.Essentials;
using Xamarin.Forms;
namespace XF_AbreLink
{
    public partial class MainPage : ContentPage
    {
        Uri uri;
        public MainPage()
        {
            InitializeComponent();
        }
        protected override void OnAppearing()
        {
            base.OnAppearing();
        }
        async Task btnBrowse_Click(object sender, System.EventArgs e)
        {
            try
            {
                uri = new Uri(entURL.Text);
                await Browser.OpenAsync(uri, BrowserLaunchMode.SystemPreferred);
            }
            catch(Exception ex)
            {
                // Não foi possivel acessar a uri
                await DisplayAlert("Erro : ", ex.Message, "Ok");
            }
        }
    }
}

Estamos usando o valor SystemPreferred da Enum BrowserLaunchMode que inicia o navegador padrão otimizado e permanece na aplicação.  O outro valor é External que abre o navegador padrão fora da aplicação.

Executando o projeto e informando uma url e clicando no botão de comando iremos obter o seguinte resultado:

Pegue o código das páginas aqui :   XF_AbreLink.zip (sem as referências)

"Jesus respondeu: Na verdade, na verdade te digo que aquele que não nascer da água e do Espírito, não pode entrar no reino de Deus."
João 3:5

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 ?

Referências:


José Carlos Macoratti