Xamarin Forms | Assets e páginas HTML como "embedded resource"
Se você já precisou carregar arquivos de páginas HTML, em seus projetos Xamarin, você provavelmente teve que replicar os arquivos para cada plataforma. O Xamarin.Forms.EmbeddedAssets vem para resolver isso e nos ajudar a centralizar cada vez mais os recursos no projeto compartilhado.
Nuget pra todo lado ✨
Para utilizar essa ferramenta vamos precisar incluir o pacote Nuget em nosso projeto compartilhado.
Install-Package Xamarin.Forms.EmbeddedAssets -Version 1.0.0
Configurando no projeto 🚀
Uma vez instalado vamos colocar nossos assets no projeto compartilhado definindo a ação de build para "Recurso Inserido".
Depois só precisamos informar o nome do arquivo a ser utilizado, da mesma forma como fazemos com as fontes a partir da versão 4.5 do Xamarin.Forms.
Podemos adicionar o atributo ExportAsset em qualquer arquivo (App.xaml.cs, MainPage.cs, AssemblyInfo.cs e etc), apenas precisamos que esteja em nível de assembly. Ou seja, fora de um bloco de namespace.
Note que aqui eu defini o paramêtro loadAssociatedResourcesInFolder pra true, pois a minha página Html utiliza css e imagens. Dessa forma eu preciso que esses outros assets também sejam exportados.
Com isso nossa página HTML já está pronta pra uso, vamos utilizar uma markup extension para carregá-la em uma webview.
A extensão EmbeddedAsset resolve o carregamento do recurso inserido para o webview, assim como para qualquer tipo de controle que precise do caminho para o arquivo.
Pronto! Estamos exibindo uma página HTML, com seus arquivos associados, sem precisar ficar replicando por plataforma.
Eai? Curtiu?
Esse exemplo você encontra no meu Github: