Xamarin Forms Embedded AssetsSe 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".
Página html como recurso inseridoDepois 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.
https://medium.com/media/b6d3398faac99243731e7b0930d7330b/hrefPodemos 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.
https://medium.com/media/a82569b019026ae9c166758f90d7cbc7/hrefA 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.
Html Page from embedded resourcesPronto! 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:
GitHub - felipebaltazar/Xamarin.Forms.EmbeddedAssets: Free yourself from platform specifc assets
Referências* Código fonte do Xamarin Forms * Código fonte do Xamarin.Forms.EmbeddedAssets